我有一个带有此验证javascript的表单。 Js检查是否选择了值。如果两个下拉选项都是选中的表格,则会发送。
但发送不工作。怎么了?
全部谢谢; - )
<script type="text/javascript">
$(document).ready(function(){
$("#submit").click(function (e) {
if($('#species').find(":selected").val()===""){
//alert("empty");
$("#msg1").html("Required");
}
if($('#species2').find(":selected").val()===""){
//alert("empty2");
$("#msg2").html("Requires");
}
e.preventDefault()
});
});
</script>
HTML:
<form method="post" action="send.php">
<label for="species" id="bobo">*Species:</label><br />
<div id="msg1"></div>
<select id="species" name="species" size="1">
<option value="">Please choose a species</option>
<option value="21">Chicken</option>
<option value="28">Turkey</option>
</select>
<br />
<div id="msg2"></div>
<select id="species2" name="species2" size="1">
<option value="">Please choose a species2</option>
<option value="21">Chicken</option>
<option value="28">Turkey</option>
</select>
<br />
<input id="submit" type="submit" value="Submit">
</form>
答案 0 :(得分:2)
首先,您应该将submit
事件附加到form
元素,因为可以在不单击“提交”按钮的情况下发送表单。
即。 (假设您为表单提供了form
的身份证明):
$('#form').submit(function(e) { ... });
其次,当您致电e.preventDefault()
时,它会取消操作,因此无法提交表单。
如果出现错误,请将e.preventDefault()
放入if
语句中,以便在出现错误时仅调用 。
答案 1 :(得分:0)
在验证选择了两个值后,您忘记了$("form").submit()
来电。
换句话说,您从未拨过电话提交表格。你应该在最后一次检查后把它放在正确位置,然后将e.preventDefault()
移动到点击处理函数体内的第一行。
答案 2 :(得分:0)
你的html中的提交按钮会激活你的行动中的httprequest。但在您的JavaScript中,您使用的是e.preventDefault()
。这将阻止html默认行为提交序列化表单数据。如果要先运行javascript验证,然后在验证后提交表单,则需要使用ajax。否则,提交按钮将自动提交表单中的任何内容,并将您重定向到html元素中定义的操作。