我有一个用HTML编写的<select>
列表,并标有<required>
标记用于验证。像这样<select name="users" width="200" size="11" style="outline:none" required>
表单<input type="submit" onclick="return confirm(\Are you sure to disable this user?\'); value="Disable user" formaction="disableuser">
但是当我在没有从列表中选择用户的情况下提交表单时,它仍会触发确认弹出窗口,即使没有选择任何内容。我坚持这个,有人能帮帮我吗?谢谢。
答案 0 :(得分:1)
试试这个..
function Submit() {
if(//check whether a user is selected)
{
var r = confirm("Are you sure to disable this user?");
if (r == true) {
//do what ever you need
}
else {
return;
}
}
else
{
alert('Please select a user!!!');
}
}
在onclick的提交按钮上调用Submit()...
答案 1 :(得分:0)
我假设代码实际上有size="1"
而不是size="11"
,因为对于后者,问题不会出现(在现代浏览器上)。对于size=1
,第一个选项被解释为选中,因此即使用户未进行任何选择,该元素也满足要求约束。要避免这种情况,请插入一个空值的虚拟选项。习惯上以类似占位符的方式使用它:
<select name="users" width="200" size="1" style="outline:none" required>
<option value="">Select a user:
<option>foo
<option>bar
</select>
Can I apply the required attribute to <select> fields in HTML5?
详细解释了这个问题与往常一样,您不应该依赖任何客户端检查;它们是为了用户的舒适,而不是为了安全。表单数据服务器端的处理应该基于用户是使用表单的修改版本的恶意黑客的假设。特别是,在这种情况下,users
的值可以是字面上的任何内容。