我正在使用bassistance.de的Validation jQuery插件来验证表单#signup-form
。表格数据应该通过$.post()
以AJAX形式提交,而不是以通常的方式直接将表格数据提交给服务器。
JS代码
// Validate form
$('.signup-form').validate({
rules: {
signupName: { required: true, minlength: 3 }
}
});
// Submit to Serverside
$('#submit-btn').click(function() {
$.post('/api/register_user',
$('#signup-modal .signup-form').serialize(),
success: function() {
console.log('posted!');
}
);
});
问题:如果用户输入的数据未通过jquery验证,#submit-btn
上的点击处理程序仍会允许提交表单!有没有办法检查没有验证错误?
答案 0 :(得分:3)
试试这个:
// Validate form
$('.signup-form').validate({
rules: {
signupName: { required: true, minlength: 3 }
}
});
// Submit to Serverside
$('#submit-btn').click(function() {
if ($('.signup-form').valid()) {
$.post('/api/register_user',
$('#signup-modal .signup-form').serialize(),
success: function() {
console.log('posted!');
}
);
}
});
答案 1 :(得分:1)
最好的方法是使用submitHandler
选项验证:
$('.signup-form').validate({
rules: {
signupName: { required: true, minlength: 3 }
},
submitHandler: function(form){
$.post('/api/register_user',
$('#signup-modal .signup-form').serialize(),
success: function() {
console.log('posted!');
}
);
}
});
一旦表单有效,这将自动调用。无需在提交按钮或提交事件中添加任何新内容。