none 我有一个表单,用户可以通过单击复选框来隐藏或显示字段。我像这样隐藏字段:
$("#ContactDetail_PostalAddressSameAsAddress").change(function () {
if ($(this).prop('checked') != true) {
$("#PostalAddressContainer").show("fast");
$('#PostalAddressContainer :input').show();
}
else {
$("#PostalAddressContainer").hide("fast");
$('#PostalAddressContainer :input').hide();
}
});
我的印象是带有 style="display:none"的字段不会回发。但是,当我提交表单时,客户端验证不会验证隐藏字段,这正是我所期望的。但是,在服务器端 ModelState.IsValid 是假的,因为强制显示:没有设置字段。
在 fiddler 中,我可以看到 display:none 字段的表单数据。请帮忙。
最佳答案
尝试禁用表单域:
$("#PostalAddressContainer").prop("disabled", true);
如果只是隐藏,还是会随着POST请求一起发送。 CSS 永远不应该对表单行为产生任何影响,因为它的目的是改变事物的显示方式。
注意,这也是<input type="hidden">
的重点- 不显示给用户,但仍与请求一起发送。
关于javascript - 为什么样式为 ="display:hidden"的字段会回发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22522400/