如何检查用户是否从<select>
HTML5 的字段中选择了某些内容?
我看到<select>
不支持新required
属性...那我是否必须使用JavaScript?还是我想念的东西?:/
如何检查用户是否从<select>
HTML5 的字段中选择了某些内容?
我看到<select>
不支持新required
属性...那我是否必须使用JavaScript?还是我想念的东西?:/
Answers:
必填:将第一个值留空-需要对空值进行处理
先决条件:正确的html5 DOCTYPE和一个命名输入字段
<select name="somename" required>
<option value="">Please select</option>
<option value="one">One</option>
</select>
根据文档(列表和粗体为我的)
必需属性是布尔属性。
指定后,将要求用户在提交表单之前选择一个值。如果选择元素
- 已指定必填属性,
- 没有指定多重属性,
- 且显示尺寸为1(SIZE = 2或更大-如果不需要,则忽略它);
- 并且如果select元素的选项列表(如果有)中的第一个option元素的值是空字符串(即以表示
value=""
),- 该选项元素的父节点是选择元素(而不是optgroup元素),
那么该选项就是选择元素的占位符标签选项。
根据规范,<select>
元素确实支持该required
属性:
哪个浏览器不满意?
(当然,无论如何,您都必须在服务器上进行验证,因为您不能保证用户将启用JavaScript。)
您可以使用selected
option元素的属性来默认选择一个选项。您可以将required
属性用于select元素,以确保用户选择了某些内容。
在Javascript中,您可以检查selectedIndex
属性以获取所选选项的索引,也可以检查value
属性以获取所选选项的值。
根据HTML5规范,selectedIndex
“返回第一个选定项目的索引(如果有的话,如果没有,则value
返回-1。如果没有,则返回-1,如果有,则返回空值,如果有则返回空字符串)。没有选定的项目。”因此,如果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>
-1
。抱歉,我没有首先在评论中澄清。
<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>
将选择框的第一项的值设置为空白。
因此,每当您发布FORM时,您都会获得空值,并且使用这种方式,您将知道用户尚未从下拉菜单中选择任何内容。
<select name="user_role" required>
<option value="">-Select-</option>
<option value="User">User</option>
<option value="Admin">Admin</option>
</select>
您需要将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属性指定提交表单时要发送到服务器的值。
试试这个,这会工作,我已经尝试了这个,这个工作。
<!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>
如果第一个选项的值为null,则效果很好。说明:HTML5将在按钮提交时读取一个空值。如果不为null(值属性),则假定所选值不为null,因此验证将有效,即通过检查option标记中是否有数据。因此,它不会产生验证方法。但是,我想另一方面,如果value属性设置为null,即(value =“”),HTML5将在第一个或默认选择的选项上检测到空值,从而发出验证消息。感谢您的询问。乐于帮助。很高兴知道我是否愿意。
您也可以使用JQuery动态地进行操作
需要设置
$("#select1").attr('required', 'required');
删除必填
$("#select1").removeAttr('required');
selectedIndex
。