13 回答
强制:将第一个值设为空 - 要求对空值起作用
先决条件:正确的 html5 DOCTYPE 和命名输入字段
<select name="somename" required>
<option value="">Please select</option>
<option value="one">One</option>
</select>
根据文档(列表和粗体是我的)
必需的属性是一个布尔属性。
指定后,用户将需要在提交表单之前选择一个值。如果一个选择元素
- 指定了必需的属性,
- 没有指定多重属性,
- 并且显示大小为 1(不具有 SIZE=2 或更大 - 如果不需要,请忽略它);
- 如果选择元素的选项列表中的第一个选项元素的值(如果有)是空字符串(即显示为
value=""
),- 并且该选项元素的父节点是 select 元素(而不是 optgroup 元素),
那么该选项是选择元素的占位符标签选项。
根据规范,该<select>
元素确实支持该required
属性:
哪个浏览器不尊重这一点?
(当然,无论如何您都必须在服务器上进行验证,因为您不能保证用户会启用 JavaScript。)
是的,它正在工作:
<select name="somename" required>
<option value="">Please select</option>
<option value="one">One</option>
</select>
您必须将第一个选项保留为空白。
默认情况下,您可以使用selected
option 元素的属性来选择选项。您可以使用required
select 元素的属性来确保用户选择了某些内容。
在Javascript中,您可以检查selectedIndex
属性以获取所选选项的索引,也可以检查value
属性以获取所选选项的值。
根据 HTML5 规范,selectedIndex
“如果有,则返回第一个选定项目的索引,如果没有选定项目,则返回 -1。并且value
”如果有,则返回第一个选定项目的值,如果有,则返回空字符串没有选择的项目。”所以如果 selectedIndex = -1,那么你知道他们没有选择任何东西。
<button type="button" onclick="displaySelection()">What did I pick?</button>
<script>
function displaySelection()
{
var mySelect = document.getElementById("someSelectElement");
var mySelection = mySelect.selectedIndex;
alert(mySelection);
}
</script>
您需要将value
属性设置option
为空字符串:
<select name="status" required>
<option selected disabled value="">what's your status?</option>
<option value="code">coding</option>
<option value="sleep">sleeping</option>
</select>
select
当用户按下. 时,会将value
所选的. 空与空输入相同 -> 引发消息。option
submit
form
value
text
required
value 属性指定提交表单时要发送到服务器的值。
<form action="">
<select required>
<option selected disabled value="">choose</option>
<option value="red">red</option>
<option value="yellow">yellow</option>
<option value="green">green</option>
<option value="grey">grey</option>
</select>
<input type="submit">
</form>
首先,您必须在第一个选项中分配空白值。即选择here.than 仅需要将工作。
试试这个,这行得通,我试过这个,这个行得通。
<!DOCTYPE html>
<html>
<body>
<form action="#">
<select required>
<option value="">None</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<input type="submit">
</form>
</body>
</html>
使选择框第一项的值为空白。
因此,当您每次发布表单时,您都会获得空白值,并且使用这种方式您会知道用户没有从下拉列表中选择任何内容。
<select name="user_role" required>
<option value="">-Select-</option>
<option value="User">User</option>
<option value="Admin">Admin</option>
</select>
如果第一个选项的值为空,则工作得很好。解释 :HTML5 将在按钮提交时读取空值。如果不为空(值属性),则假定所选值不为空,因此验证将起作用,即通过检查选项标签中是否存在数据。因此它不会产生验证方法。但是,我想另一面很清楚,如果 value 属性设置为 null 即 (value = "" ),HTML5 将在第一个或更确切地说是默认选择的选项上检测到一个空值,从而发出验证消息。谢谢你的提问。乐意效劳。很高兴知道我是否这样做了。
在 html5 中,您可以使用完整的表达式:
<select required="required">
我不知道为什么简短的表达不起作用,但试试这个。它会解决的。
尝试这个
<select>
<option value="" style="display:none">Please select</option>
<option value="one">One</option>
</select>
您也可以使用 JQuery 动态执行此操作
需要设置
$("#select1").attr('required', 'required');
删除所需
$("#select1").removeAttr('required');