2011-06-21 76 views
0

我想弄清楚如何做動態表單驗證與jQuery和jQuery的驗證插件。我對jQuery和JS一般都很陌生。動態表單驗證(不只是字段)

我已經想出瞭如何在單擊提交(使用submitHandler)時發生驗證。不過,我需要通過ajax POST,而不是本地方式。所以我需要防止默認,我似乎不能。對我來說,原生的方式是當你點擊提交時,操作發生。我不想讓行動發生,因爲我試圖通過$ .ajax({...});做到這一點。如果我將驗證放在$('#form')。live('click',函數(e){...})中,我現在可以通過ajax發佈,但是驗證不會發生。我已經有了$(document).ready(function(){...};裏面的所有東西。我怎樣才能獲得一個在live('click')方法中驗證的動態表單?我試過了當我添加表單時調用validate(),我通過點擊一個對象來添加一個完整的表單,並追加到一個子對象。

無論哪種方式(在submitHandler中,或通過使用live('click')) )是我很好,但我似乎無法找出任何一種方式。

希望這是足夠的信息,但如果沒有,我會很樂意提供更多。下面submitHandler的一個小片段。

$("#form-" + $(this).attr('id')).validate({ 
    submitHandler: function(form) { 
     this.preventDefault(); 
     // My ajax function below (submitForm); 
     submitForm(this); 
     alert('wee'); 
    } 
+0

好的,所以我解決了這個問題。我使用了錯誤的血腥對象...... 'code submitForm(this)'應該是: 'code submitForm(form);' AFTER我改變了驗證行並在驗證行之前添加了一行: (code) 'code var form =「#form-」+ $(this).attr('id'); $(形式).validate({ ' 我的最終版本是: '代碼 變種形式= 「#形式 - 」 + $(本).attr( '身份證'); $ (形式).validate( ); { submitHandler } 功能(形式){//只有當有效 submitForm(形式)運行}; ' – AlienResidents

回答

0

你看過jQuery (ajax) form plugin嗎?

+0

我認爲您的解決方案的工作最好的感謝,我修改了一下,並展示瞭如何我作爲對我的問題的評論,我想要做什麼 謝謝 – AlienResidents

+0

沒問題,很高興幫助 – Betamos

2

您沒有正確使用submitHandler。試試這個:

$("#myform").validate({ 
     submitHandler: function(form) { 
     form.submit(); 
     } 
}); 

,然後覆蓋該表單的提交功能:

$('#myform').submit(function() { 
    $.post(url, $(this).serialize(), function(response) { 
    //do something with the AJAX response 
    }); 

    return false; 
}); 

返回FALSE;最後會阻止默認的表單提交。

+0

您在這裏遇到的問題是您沒有閱讀我的問題(我認爲)。知道表單的名字,直到我通過ajax加載它,所以雖然這對靜態窗體很有用,但我沒有使用靜態窗體。 我試過建立$(..)。submit({});每次我添加一行,但這是行不通的。 (code) 'code var form =「#form-」+ $(this).attr('id'); $(form).submit(function(){ submitForm(form); })。驗證({0}} {submitHandler:function(form){ form.submit(); } ' – AlienResidents