我正在做一些简单的表单验证,并陷入了一个非常基本的问题。我有5个字段对名称和主菜(用于晚餐注册)。用户可以输入1-5对,但如果存在名称,则必须选择主菜单。代码:在调用e.preventDefault()后提交表单
<form>
Name: <input name="atendeename[]">
Entree: <input name="entree[]"><br>
Name: <input name="atendeename[]">
Entree: <input name="entree[]"><br>
Name: <input name="atendeename[]">
Entree: <input name="entree[]"><br>
Name: <input name="atendeename[]">
Entree: <input name="entree[]"><br>
Name: <input name="atendeename[]">
Entree: <input name="entree[]"><br>
<input type="submit" value="Submit">
</form>
// Prevent form submit if any entrees are missing
$('form').submit(function(e){
e.preventDefault();
// Cycle through each Attendee Name
$('[name="atendeename[]"]', this).each(function(index, el){
// If there is a value
if ($(el).val()) {
// Find adjacent entree input
var entree = $(el).next('input');
// If entree is empty, don't submit form
if (! entree.val()) {
alert('Please select an entree');
entree.focus();
return false;
}
}
});
$('form').unbind('submit').submit();
});
错误消息是工作,但它的每一次提交表单。我知道这条线有什么问题:
$('form').unbind('submit').submit();
......但我不确定我需要做什么。
为什么你让拆散你的提交表单??? –
我见过这篇文章,但解决方案看起来可疑,并使用'setTimeout':http://stackoverflow.com/questions/14866626/submitting-form-after-using-e-preventdefault?rq=1 –
@ d.danailov所以它不会再次运行验证。请帮助我 - 我需要做什么? –