【问题标题】:Simple HTML form with Select Option disabled, is allowed to submit in Chrome and IE. Works fine in Firefox禁用 Select Option 的简单 HTML 表单允许在 Chrome 和 IE 中提交。在 Firefox 中运行良好
【发布时间】:2018-03-21 19:07:48
【问题描述】:

我有一个简单的 HTML 表单,可以提交到另一个页面。选择选项正在使用,其中一个被“禁用”和“选中”。在 Chrome 和 Internet Explorer 中允许提交此表单,但在 Firefox 中它可以正常工作并告诉我选择一个选项。

代码:

<form name=cars method=post action=submit.php>
    <select required>
        <option value="volvo" disabled="disabled" selected>Volvo</option>
        <option value="saab">Saab</option>
        <option value="vw">VW</option>
        <option value="audi">Audi</option>
        <input type=submit value=submit name=submit>
    </select> 
</form>

在 FireFox 中,正如预期的那样,当我点击提交按钮时,我收到消息:

“请在列表中选择一个项目。”

在 IE 和 Chrome 上,它会尝试提交到提交页面。

【问题讨论】:

  • 您能否提供对 HTML 规范部分的参考,说明哪种行为是正确的?
  • 嗯...这可能与浏览器对“禁用”与“选择”的解释有关。我猜 IE 和 Chrome 会考虑选择沃尔沃(通过 HTML 标记),即使它已被禁用。这是某些要求的“选定”部分吗?
  • 为什么你的&lt;input type=submit&gt; 里面有&lt;select&gt; ????那是无效的。 &lt;select&gt; 中允许的唯一元素是 &lt;option&gt;&lt;optgroup&gt;
  • @Katana314 Selected 最终将更改为“选择一个选项”之类的内容。这就是为什么我希望它被禁用,这样你就不能提交“选择一个选项”的选项
  • @Spudley 我最初并没有那样做,我只是把它移到那里进行测试,它仍然可以在 Firefox 中以我想要的方式工作。我已经在 内部和外部进行了尝试,它的行为方式相同。

标签: php html forms html-select


【解决方案1】:

这是因为 select 已经选择了一个值。你必须放一个没有值的option,像这样。另外,我会帮你清理你的代码:

<form name="cars" method="post" action="submit.php">
    <select name="car" required>
        <option value="">Select a car...</option>
        <option value="volvo">Volvo</option>
        <option value="saab">Saab</option>
        <option value="vw">VW</option>
        <option value="audi">Audi</option>
    </select> 
    <input type="submit" value="submit" name="submit">
</form>

【讨论】:

  • 我试过你的代码,它在 Firefox 中仍然可以正常工作。但是,Chrome 甚至不会显示“选择汽车...”选项,而 IE 将允许我提交表单而无需更改选项。
  • 我清除了 chrome 上的缓存,现在它可以正常工作了。 IE还没有运气。不过,感谢您帮助它在 Chrome 上运行!
  • 您能指定浏览器版本吗?它的 html5 验证,它不会在旧浏览器中工作,特别是在 IE8 中
  • @AamirShahzad 我正在使用 IE9。
【解决方案2】:

上述解决方案适用于除 IE 7-8-9 以外的所有浏览器,作为必需属性;

IE 10: works fine.
IE 9: the required attribute doesn't trigger validation of a field.
IE 7 & 8: the required attribute appears to prevent validation of a field.

参考不同浏览器中的“必需”属性支持:

http://html5test.com/compare/feature/form-select-required.html

替代解决方案可以是 JQuery。

【讨论】:

  • 感谢您的宝贵时间和帮助。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多