在asp.net webforms中使用JQuery为隐藏表单字段赋值
本文关键字:隐藏 表单 字段 赋值 JQuery net asp webforms | 更新日期: 2023-09-27 17:53:36
我有一个项目,我在webforms上工作,我遇到了一个问题,试图分配一个值到一个隐藏的表单字段,然后从后面的代码访问它;这将导致一个空值。我通常在MVC应用程序上工作,所以我有点困惑。
这是JQuery:
$('.button-submit').click(function () {
var foo = 'bar';
$('#hiddenField').val(foo);
});
这是我的表单:
<form id="form1" runat="server">
<input type="hidden" id="hiddenField" value="" />
<asp:Button ID="ButtonSubmit" runat="server" OnClick="ButtonSubmit_Click" Text="Add New" class="button-submit" />
</form>
在后面的代码中:
protected void ButtonSubmit_Click(object sender, EventArgs e)
{
string hiddenFormValue = Request.Form["hiddenField"];
}
Request.Form["hiddenField"]
为null
。我也试了Request.Params
,得到了null
。关于如何修复此代码或推荐更好的实现方法,有任何想法吗?我还尝试使用asp:HiddenField
控件,它正在获得分配的值(用alert($('#hiddenField').val()
进行测试);但在后面的代码中仍然以空字符串结束。
如果你使用asp:HiddenField
控件,js应该是这样的:
$('.button-submit').click(function () {
var foo = 'bar';
$('#<%=controlID.ClientID%>').val(foo);
});
javaScript应该像AV那样使用aspx引用
$('.button-submit').click(function () {
var foo = 'bar';
$('#<%=hiddenField.ClientID%>').val(foo);
});
然后你可以直接访问它
protected void ButtonSubmit_Click(object sender, EventArgs e)
{
string hiddenFormValue = hiddenField.Value;
}
虽然这可能不是最好的方法来完成这个
不妨试试这个:
<form id="form1" runat="server">
<asp:hiddenfield id="hiddenField" runnat="server" />
<asp:Button ID="ButtonSubmit" runat="server" OnClick="javascript:FOO()" Text="Add New" />
</form>
与脚本
function FOO() {
var foo = 'bar';
$('#<%=hiddenFeild.ClientID %>').val(foo);
__doPostBack('<%=form1.ClientID %>', '');
}
我真的不明白为什么你不使用Asp隐藏控件,但即使你仍然想做你的方式,我建议添加名称
<form id="form1" runat="server">
<input type="hidden" name="hiddenField" id="hiddenField" value="" />
<asp:Button ID="ButtonSubmit" runat="server" OnClick="ButtonSubmit_Click" Text="Add New" class="button-submit" />
</form>
您需要告诉它在服务器上运行,以便可以访问它。您可以很好地访问客户端上的值,这就是alert($("#<%=hiddenField.ClientID%>").val());
可以工作的原因。如果要在服务器上读取该值,则需要在服务器上运行该值。
<input type="hidden" id="hiddenField" runat="server" value="" />
我确信这会解决你的问题
在隐藏字段上添加ClientIDMode="Static"
。
参考此链接:https://stackoverflow.com/a/20903213/175111.