首先验证表单然后执行ajax调用

时间:2013-11-01 04:26:12

标签: javascript jquery ajax validation

我使用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;
});

2 个答案:

答案 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没有被解雇:(