我使用jquery验证插件来验证我的表单。但仍有一些领域需要自定义验证。
奇怪的是。提交时,如果确定则首先检查我的选择框验证,然后由于$ .validate(),所有字段都变为红色。如果没有填写但是仍然继续进行ajax调用......为什么会这样?
我也在使用这个插件:http://formvalidator.net/#configuration我已经尝试了回调但是由于某种原因它仍然没有返回false并继续使用ajax。
$( "#registration-form" ).submit(function( event ) {
event.preventDefault();
$.validate();
//Check dropdown
if(document.getElementById('foodassoonas').selectedIndex == 0)
{
$('#dateerrormsg').html('not ok');
$("#foodassoonas").css({"border":"1px solid red"});
return false;
}
$.post(jssitebaseUrl+'/ajaxFile.php',{'contactemail':contactemail,'action':'checkOrderEmailId'}, function(output){
alert(output);
if(output == 'already' && contactpassword !=""){
$("#createUserError").addClass('errClass1 margin0');
$("#createUserError").html('not ok');
$("#createUserError").show();
return false;
}else if(output == 'gotopayment' || (output == 'already' && contactpassword =="")){
document.checkoutform.submit();
}
return false;
});
return false;
});
答案 0 :(得分:2)
试试这个
$.validate({
onError : function() {
alert('Validation failed');
return false;
}
});
答案 1 :(得分:0)
玩完之后我就这样做了:
>>>> REMOVED (PLACED ON BOTTOM) event.preventDefault();
$( "#registration-form" ).submit(function( event ) {
var flag = $.validate();
if(!flag) {
//Check dropdown
if(document.getElementById('foodassoonas').selectedIndex == 0)
{
$('#dateerrormsg').html('U heeft geen bezorgtijd aangegeven');
$("#foodassoonas").css({"border":"1px solid red"});
return false;
}
var contactemail = $('#contactemail').val();
$.post(jssitebaseUrl+'/ajaxFile.php',{'contactemail':contactemail,'action':'checkOrderEmailId'}, function(output){
alert(output);
if(output == 'already' && contactpassword !=""){
$("#createUserError").addClass('errClass1 margin0');
$("#createUserError").html('not ok');
$("#createUserError").show();
return false;
}else if(output == 'gotopayment' || (output == 'already' && contactpassword =="")){
document.checkoutform.submit();
}
return false;
});
return flag;
}
>>>> REMOVED return false;
>>>> ADDED event.preventDefault();
});
现在只有ajax没有被解雇:(