3

这两个我都试过了:

    <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 个完美答案时,我怎么知道要检查哪一个...

4

3 回答 3

3

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

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

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

于 2011-06-09T18:29:39.940 回答
2

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

document.getElementById("myHour").value = hour
于 2011-06-09T18:29:24.500 回答
2

javascript 不区分大小写。尝试:

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

document.getElementById("myHour").Value by 
document.getElementById("myHour").value
于 2011-06-09T18:30:37.637 回答