Google Chrome无法使用display:none提交表单

MFB*_*MFB 6 html css google-chrome

除非style="display:none"template=rowdiv中删除,否则此表单上的"提交"按钮不会执行任何操作.为什么??

(name每个表单控件的部分由javascript动态填充,但是,为了简化故障排除,我运行了没有javascript的表单,问题归结为该display标签是否存在).

这就是Chrome控制台所说的:

bundleAn invalid form control with name='' is not focusable.
bundleAn invalid form control with name='label' is not focusable.
bundleAn invalid form control with name='unique' is not focusable
Run Code Online (Sandbox Code Playgroud)

HTML:

<form method="POST" action="/add/bundle">
    <p>
        <input type="text" name="singular" placeholder="Singular Name" required>
        <input type="text" name="plural" placeholder="Plural Name" required>
    </p>

    <h4>Asset Fields</h4>

<div class="template-view" id="template_row" style="display:none">
    <input type="text" data-keyname="name" placeholder="Field Name">
    <input type="text" data-keyname="hint" placeholder="Hint">


    <select data-keyname="fieldtype" required>
        <option value="">Field Type...</option>
    </select>

    <input type="checkbox" data-keyname="required" value="true"> Required
    <input type="checkbox" data-keyname="search" value="true"> Searchable
    <input type="checkbox" data-keyname="readonly" value="true"> ReadOnly
    <input type="checkbox" data-keyname="autocomplete" value="true"> AutoComplete
    <input type="radio" data-keyname="label" value="label" name="label" required> Label
    <input type="radio" data-keyname="unique" value="unique" name="unique" required> Unique
    <button class="add" type="button">+</button>
    <button class="remove" type="button">-</button>
</div>

<div id="target_list"></div>

    <p><input type="submit" name="form.submitted" value="Submit" autofocus></p>

</form>
Run Code Online (Sandbox Code Playgroud)

emb*_*oss 5

原因似乎是HTML 5 约束验证 -这是require属性。Chrome已开始使用其最新版本来支持此功能。

显然这是一个向后兼容性问题,但您可以通过设置“ formnovalidate提交”按钮的属性来解决此问题

我认为这实际上是一项安全功能,它通过提交操纵的隐藏内容来阻止提交假定的用户数据,此引号指向该方向:

如果未呈现其中一个控件(例如,已设置隐藏属性),则用户代理可能会报告脚本错误。

您的输入是类型的text,因此它们的目的是让用户输入数据,在隐藏的状态下提交其内容是用户可能不希望的。

如果您仍想在使用客户端验证时提交隐藏的输入,我建议<input type="hidden">改用-我可以想象那里的验证没有错误,因为它们是不可见的。