选择后提交表格

时间:2013-03-21 16:46:52

标签: javascript jquery

我有一个带有此验证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>

3 个答案:

答案 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元素中定义的操作。