我有一个使用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
文件中隐藏字段的值,它们都是空的。我在这做错了什么?任何和所有的帮助表示赞赏。
答案 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");