首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么带有style="display:hidden“的字段回发?

为什么带有style="display:hidden“的字段回发?
EN

Stack Overflow用户
提问于 2014-03-20 10:41:15
回答 5查看 1.1K关注 0票数 3

noneI有一个表单,用户可以在其中通过单击复选框来隐藏或显示字段。我像这样隐藏字段:

代码语言:javascript
运行
复制
 $("#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“的字段不会回发。但是,当我提交表单时,客户端验证不会验证隐藏字段,这是我所期望的。但是,在服务器端,由于未设置强制显示:none字段,ModelState.IsValid为false。

在fiddler中,我可以看到显示的表单数据:无字段。请帮帮忙。

EN

回答 5

Stack Overflow用户

发布于 2014-03-20 10:46:50

尝试禁用表单域:

代码语言:javascript
运行
复制
$("#PostalAddressContainer").prop("disabled", true);

如果它只是隐藏的,它仍然会与POST请求一起发送。CSS不应该对表单行为有任何影响,因为它的目的是改变事物的显示方式。

请注意,这也是<input type="hidden">的要点-不显示给用户,但仍然与请求一起发送。

票数 4
EN

Stack Overflow用户

发布于 2014-03-20 10:49:00

您可以将其禁用

代码语言:javascript
运行
复制
$('#PostalAddressContainer').attr('disabled', 'disabled');

这将不会在POST请求中被考虑。

票数 2
EN

Stack Overflow用户

发布于 2014-03-20 11:06:28

不幸的是,你的印象是错误的。所有成功的控件都被序列化,并在提交表单时由浏览器发送。

The HTML spec defines what makes a control successful.

成功的控件对于提交是“有效的”。每个成功的控件都有与其当前值成对的控件名称,作为提交的表单数据集的一部分。成功的控件必须在表单元素中定义,并且必须具有控件名称。

但是:

如果表单包含多个提交按钮,则只有激活的提交按钮是successful.

  • All "on“复选框可以是共享相同名称属性值的successful.

  • For单选按钮,只有"on”单选按钮可以是successful.

  • For菜单,控件名称由

元素提供,值由元素提供。只有选定的选项才能成功。如果未选择任何选项,则控制不会成功,并且当表单为submitted.

  • The文件的当前值选择是一个或多个文件名列表时,名称和任何值都不会提交到服务器。提交表单时,每个文件的内容将与表单数据的其余部分一起提交。文件内容根据表单的内容类型打包。
  • 对象控件的当前值由对象的implementation.

确定

如果在提交表单时控件没有当前值,则不需要用户代理将其视为成功的控件。

此外,用户代理不应将以下控制视为成功:

已设置declare属性的buttons.

  • OBJECT元素重置

隐藏控件和由于样式表设置而未呈现的控件可能仍会成功。

该规范明确指出,隐藏的表单元素应该发送到服务器。

除了隐藏字段之外,您还需要禁用它们。

代码语言:javascript
运行
复制
$("#PostalAddressContainer :input").prop("disabled", true).hide();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22522400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档