我在表单中有一个隐藏字段,我在标记中设置了默认值:
<input id="hiddenField" type="hidden" runat="server" value="0" />
我通过客户端JS函数动态设置字段的值...这样可行,我的字段最终看起来像:
<input id="hiddenField" type="hidden" runat="server" value="7" />
我想要做的是在点击此按钮时获取该值:
<asp:Button ID="Button" runat="server" OnClick="Button_Click" Text="Submit" CssClass="btn" />
然后从我的代码中使用它来执行某些操作。
protected void Button_Click(object sender, EventArgs e)
{
string itemToCheck = hiddenField.Value;
//do something with itemToCheck
}
问题是返回的值是0,这是默认值。正如我所提到的,价值是通过客户端JS改变的,我确认该部分有效。这样做的目的是创建一个可以在提交时用于检查值的变量,即使是简单的事情:
if (itemToCheck >= 2){
//do something
}
...所以我没有绑定隐藏字段,或者那个问题的值属性......只是将它作为一种将一个值从一个点传递到另一个点的hacky方式。
此外,即使我能够使用JS来设置属性,解决方案需要在C#中根据需要使用结果....除非有一种方法在JS中执行它并将结果传递给C#。
答案 0 :(得分:1)
您可以将常规ASP.Net文本框添加到页面,然后在客户端加载页面时将其隐藏。然后,您可以使用JavaScript和jQuery操作该值。
<script>
$(document).ready(function () {
$('input#<% =txtTest.ClientID %>').val(9);
$('input#<% =txtTest.ClientID %>').hide();
})
</script>
然后,您可以阅读服务器端的文本框值:
protected void Button1_Click(object sender, EventArgs e)
{
var x = txtTest.Text;
}