将值设置为不使用jQuery的隐藏字段

时间:2014-12-04 16:39:16

标签: javascript c# jquery asp.net

我有一个使用Visual Studio 2013创建的应用程序,我遇到了一些使用jQuery为隐藏字段赋值的问题。首先让我说我正在为隐藏变量赋值,因为我无法直接访问.cs文件中标签的文本值,所以我必须将标签的值赋给隐藏的输入字段,所以我可以在.cs文件中访问它。我希望这是有道理的。

以下是我在.aspx文件中隐藏的输入字段:

  <input type="hidden" id="at" runat="server" />
  <input type="hidden" id="wt" runat="server" />
  <input type="hidden" id="att" runat="server" />
  <input type="hidden" id="wtt" runat="server" />
  <input type="hidden" id="gt" runat="server" />
  <input type="hidden" id="ah" runat="server" />
  <input type="hidden" id="wh" runat="server" />
  <input type="hidden" id="th" runat="server" />
  <input type="hidden" id="tah" runat="server" />
  <input type="hidden" id="twh" runat="server" />

这是我在按下某个键时运行的功能:

<script src="Scripts/add-bid.js"></script>
<script type="text/javascript">
        $(document).ready(function () {
            $('input[type=text]').keyup(function () {
                calculateTotal();
            });
        });
</script>

以下是add-bid.js脚本内部的代码,即calculateTotal函数:

$("#at").val("100");
$("#wt").val("200");
$("#att").val("100");
$("#wtt").val("200");
$("#gt").val("600");
$("#th").val("42");

我在这里用硬编码值作为例子。然后我去检索aspx.cs文件中隐藏字段的值,它们都是空的。我在这做错了什么?任何和所有的帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

如果您从浏览器查看源代码,您可能会发现ID已被丢弃并替换为生成的ID。 runat="server"使其使用自己的命名系统。

使用ClientIDMode="Static"以保留原始ID。

e.g。

<input type="hidden" id="at" runat="server" ClientIDMode="Static" />

参考:http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx

答案 1 :(得分:1)

尝试以下方法:

$('#<%= at.ClientID %>').val("100");
$('#<%= wt.ClientID %>').val("200");
$('#<%= att.ClientID %>').val("100");
$('#<%= wtt.ClientID %>').val("200");
$('#<%= gt.ClientID %>').val("600");
$('#<%= th.ClientID %>').val("42");