2015-08-14 74 views
0

你直接处理的前和后回调:表单域的jQuery validationEngine Ajax验证需要回调

jQuery("#testForm").validationEngine('attach', 
{ 
    promptPosition : "bottomLeft", 
    validationEventTrigger : "submit", 
    ajaxFormValidation: true, 
    onBeforeAjaxFormValidation: function() { 
     alert('before'); 
    }, 
    onAjaxFormComplete : function(status, form, errors, options) { 
     alert('after'); 
    } 
}); 

这很酷,所有,但我只是要验证一个单独的字段(在此情况下,文本输入“输入[名称=‘名称’]”):

<script> 
$("#testBtn").click(function() { 
    var resp = $("#testForm").validationEngine("validate"); 
}); 
</script> 
<form onsubmit="return false;" 
    onclick="$('#testForm').validationEngine('hide')" 
    name="testForm" 
    id="testForm" 
    action="" method="POST"> 
    <input type="hidden" name="providerId" value="0" /> 
    <input name="name" value="Default Provider" class="validate[required, ajax[checkProviderNameExists]]" /> 
    <button id="testBtn">Submit</button> 
</form> 

当提交按钮是点击,jQuery ValidationEngine会将checkProviderNameExists请求提交给服务器,并根据结果显示正确/不正确的提示。但是,如果验证通过,我希望能够在此时提交表单。这可能吗? 基本上我需要一个字段验证的回调函数,所以我可以根据表单是否被验证采取适当的行动。

为了完整起见,这里是我的自定义AJAX验证的实行:

"checkProviderNameExists" : { 
    "url": "/settings/checkprovidernameexists", 
    "extraDataDynamic": "providerId", 
    "alertText": "* This provider name already exists", 
    "alertTextLoad": "Checking name..." 
} 
+0

找到了以下URL:http://www.position-absolute.com/articles/using-form-ajax-validation-with-the-jquery-validation-engine-plugin/,它似乎表明我想要是不可能的。 “内联验证不会在提交时被调用,内联ajax验证是为了直接与用户交互,您必须验证提交的信息” – IcedDante

回答

0

对单个字段设置一个AJAX验证只执行在运行时。为了完成我想要的功能,我必须使用ajax来验证整个表单,并在该特定的ajax处理程序中对各个字段进行验证。

+0

如果可能,您可以帮我吗?@IcedD​​ante?我有同样的问题,我无法摆脱它。 – Chirag