【问题标题】:Value of a HiddenField not updatingHiddenField 的值未更新
【发布时间】: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 对象。

标签: c# javascript asp.net updatepanel hiddenfield


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-06
    • 2015-02-09
    • 2021-07-30
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多