隐藏字段的值不更新

时间:2011-06-09 18:25:05

标签: c# javascript asp.net updatepanel hiddenfield

我尝试过这两种方法:

    <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中的SAME更新面板中。

那为什么不更新?

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

3 个答案:

答案 0 :(得分:3)

尝试使用value代替Value。浏览者对这些事情很挑剔。

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

javascript不区分大小写。 尝试:

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

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