我正在使用以下answer来实现所需的下拉框。唯一的区别是我的应用程序中的下拉框代码位于一个新页面中,该页面将被弹出。
问题是,一旦用户选择任何选项,包括没有值的选项,表单就会被提交!
Page 1
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate
/1.9/jquery.validate.js"
</script>
<script type="text/javascript">
$("#everything").validate({
messages: {
dd1: {
required: "Please select an option from the list, if
none are appropriate please select 'Other'"
}
}
});
function popup(){
document.getElementById("mydropbox").style.display = "Block";
>> send request to server to show the Page 2 in body of mydropbox <<
return false;
}
</script>
</head>
<body>
<a href="" OnClick="return popup()">popup</a>
<div id="mydropbox"></div>
...
</body>
</html>
第2页
<html>
<body>
<form id="everything">
<label for="dd1">Select the best option</label><br/>
<select name="dd1" id="dd1" class="required">
<option value="">None</option>
<option value="o1">option 1</option>
<option value="o2">option 2</option>
<option value="o3">option 3</option>
</select>
<br/><br/>
<input type="submit" />
</form>
</body>
</html>
答案 0 :(得分:0)
将required
attribute添加到您的select
元素中。这至少应该适用于现代浏览器。
它会提醒用户他们选择的选项是否为空值(如您所选择的“无”选项)。当然,你也可以做服务器端验证,因为你不能依赖它。
答案 1 :(得分:0)
<强> HTML 强>
<input type="submit" id="sbt" /> //added id to the submit button sbt
<强> JS 强>
$('#sbt').click(function (e) {
e.preventDefault(); //stop form submit
if ($('#dd1 option:selected').text() != 'None') {
$('#everything').trigger('submit'); // if selected text not = to None then trigger form submit.
}
});
从表单中删除提交按钮并使用此
仅当下拉列表值更改时才会提交表单
<select onchange="this.form.submit()">
...
</select>