输入隐藏控件不会在回发之间保留其值
我正在使用 ASP.NET MVC 制作网页。 我定义了以下隐藏输入:
<%=Html.Hidden("inputHiddenSelectedMenuId") %>
我在这个 js 函数中设置了它的值:
function SetSelectedMenu(id) {
$('#inputHiddenSelectedMenuId').val(id);
}
在 js init 函数中进行回发后,我想使用隐藏输入中设置的值,但该值是字符串空。
$(document).ready(function() {
$('div.nav > a').removeClass('active');
var id = $('#inputHiddenSelectedMenuId').val();
if (id != "") {
$("#" + id).addClass('active');
}
});
谁能暗示为什么会发生这种情况?
I'm making an webpage using ASP.NET MVC.
I have the following input hidden definied:
<%=Html.Hidden("inputHiddenSelectedMenuId") %>
And i set its value in this js function:
function SetSelectedMenu(id) {
$('#inputHiddenSelectedMenuId').val(id);
}
After a make a postback in the js init function i want to use the value set in the input hidden but the value is string empty.
$(document).ready(function() {
$('div.nav > a').removeClass('active');
var id = $('#inputHiddenSelectedMenuId').val();
if (id != "") {
$("#" + id).addClass('active');
}
});
Can anyone give a hint why this is happening?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在尝试读取 JavaScript 中输入的值。当您单击表单上的按钮时,它会回发您的页面,并且每次加载页面时都会重新运行 javascript。如果您所做的只是读取 javascript 中输入的值,则无需执行回发。
单击功能将在没有回发的情况下执行。
现在,如果您尝试在发布后从 MVC 中读取隐藏字段的内容,那么这是一个不同的问题。您必须通过模型绑定从表单数据中提取它(或直接通过 Request.Form[] 集合读取它。
You are trying to read the value of the input in javascript. When you click a button on a form and it does a post back your page is being reloaded and the javascript re-runs every time the page is loaded. If all you are doing is reading the value of an input in javascript you do not need to perform a postback.
The click function will be performed without a postback.
Now, if you are trying to read the contents of the hidden field from within MVC after a post then this is a different issue. You will have to pull it from the form data through model binding (or reading it directly through the Request.Form[] collection.