HiddenField 的值未更新

Posted

技术标签:

【中文标题】HiddenField 的值未更新【英文标题】:Value of a HiddenField not updating 【发布时间】:2011-09-11 22:49:58 【问题描述】:

这两个我都试过了:

    <asp:HiddenField ID = "selectedHour" runat="server" Value="blahblah" />
    <input type="hidden" id="myHour" name="hour" Value="blahblah" runat="server"/>

我尝试用 javascript 更新它:

     <script type="text/javascript">
      function addEventByClick(hour) 
        document.getElementById("myHour").Value = hour;
        alert(document.getElementById("myHour").Value);
        document.getElementById("dummyButton").click();
      
     </script>

哪个“有效”:警报给了我正确的数字。

然后,当我点击提交时,它会调用一个 C# 方法(通过点击一个 asp.net 组件来调用),它会这样做:

String h = myHour.Value;
//or
//String h = Request.Form["myHour"];

这总是返回“blahblah”,即初始值。

所有这些东西都在一个更新面板中,但它在同一个更新面板中,都在同一个 ContentTemplate 中。

那为什么不更新呢?

编辑:谢谢大家。我讨厌当我得到 3 个完美答案时,我怎么知道要检查哪一个...

【问题讨论】:

这是做什么的? -> document.getElementById("dummyButton").click() @Rohan 模拟点击按钮,完美运行。我用它来打开一个模式弹出窗口,因为用户可以通过多种方式获得该弹出窗口。 不确定,因为.click() 在技术上应该适用于 jquery 对象,而不是您选择的 DOM 对象。 【参考方案1】:

javascript 不区分大小写。 试试:

replace document.getElementById("myHour").Value = hour; by 
        document.getElementById("myHour").value = hour; and 

document.getElementById("myHour").Value by 
document.getElementById("myHour").value

【讨论】:

你的意思是 javascript IS 区分大小写。 =D【参考方案2】:

尝试使用value 而不是Value。浏览器对这些东西很挑剔。

或者,使用jQuery,你的问题就会神奇地消失:

$('#myobject').val( 'new value' );

【讨论】:

我......我不敢相信这有效。我认真地为此工作了 30 分钟。 @Xaisoft:有时甚至 html 也是如此,这取决于您的浏览器。使用 jQuery 消除了“神奇地不起作用”的问题。您不能误用.val 方法。每个拼写错误都会引发显式错误,而不是静默失败。 人们一直在建议使用 jquery。我对 asp.net 还不是很满意,但我想是时候尝试一下了。 @Jeremy,asp.net 和 jquery 是两个完全不同的东西。 Stefan 正在谈论 jquery 为您提供的原始 javascript 的封装。 @Xaisoft 我说我对我正在学习的新技术(asp.net、javascript、html)不太满意,我现在最不想做的就是添加一些东西不然我不太会用。【参考方案3】:

尝试使用未大写的值,用于原始 html:

document.getElementById("myHour").value = hour

【讨论】:

以上是关于HiddenField 的值未更新的主要内容,如果未能解决你的问题,请参考以下文章

文本字段更改的值未在 OnSubmit 中更新 - React-Hook-Form 和 React Js

嵌套 Rails 表单中的动态值未更新

更改 Json 数组的值并放入 Hiddenfield

我的 SKSpriteNode 速度值未正确更新

GPIO 输出寄存器位值未更新

在 Angular2 ngModel 值未在自定义指令的 onBlur 事件上更新