2015-08-14 31 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