Symfony2自动生成的表单中<select>字段的HTML5验证

3

我在一个必选的下拉框中有以下代码:

<select required="required">
    <option value="1">01</option>
    <option value="2">02</option>
    ...
    <option value="31">31</option>
</select>

在我的(HTML5 / symfony2)应用程序中,日期(天)是必填项,因此值必须在1和31之间,并且我不想要空/ null值。
尽管代码能够正常工作,但它会出现以下错误的w3c验证:
选择具有必需属性且没有多个属性并且其大小为1的元素的第一个子选项元素必须具有空值属性或不能具有文本内容。
解决该问题的最佳方法是什么?
1个回答

8
使用require属性:
<select required="required">
<option value=""></option><!-- added empty value -->
<option value="1">01</option>
<option value="2">02</option>
...
<option value="31">31</option>
</select>

去掉require属性即可:

<select>
<option value="1">01</option>
<option value="2">02</option>
...
<option value="31">31</option>
</select>

如果您不想包括空白选项,另一种方法是将 <select>selectedIndex 设置为 -1 - TJ VanToll
没错,但我不知道它是否通过了W3C验证器。这是JS解决方案,事实上空的 option 值(验证器所提到)仍将缺失。需要测试。 - long
它会通过验证器,但我同意空的<option>是更好的解决方案。我只是想说它可以工作。 - TJ VanToll

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接