2011-01-31 4 views
3

jQuery validate pluginを私が実行中に生成するフォームにバインドする必要があります。私が知る限り、.live()はこれをjQueryで行う唯一の方法です。少なくとも私が試している方法ではうまくいかないようです。私はこれができないと思うし、ちょうどeebkacです!JQuery:.validのプラグインを.liveにバインドする

これは正常に動作します:

​​

これは、構文エラーを生成します。

$("form#form_CreateUser").live('validate', function() { 
    submitHandler: function(form) { 
    // do other stuff for a valid form 
    UserSubmit(); 
    } 
}); 
+0

スタックオーバーフローでURL短縮記号を使用しないでください。 –

答えて

14

あなたはどのようにvalidate作品誤解しましたので、これは動作しません。 は、clickのようなイベントハンドラ機能のようにと思われますが、実際はそうではありません。

clickbind('click', fn)のショートカットです。 validateは、bindを使用しても機能しません。 liveは実質的に、まだ存在しない要素に対してbind呼び出しを動作させる方法であり、validateでは機能しません。

これを行う最も簡単な方法は、validateを呼び出す関数を作成し、新しいコンテンツを挿入するたびにその関数を呼び出すことです。たとえば、AJAXを使用してフォームを挿入する場合は、​​関数を使用できます。

function setupValidate() { 
    $("form#form_CreateUser").validate({ 
     submitHandler: function(form) { 
      // do other stuff for a valid form 
      UserSubmit(); 
     } 
    }); 
} 

$(document).ajaxComplete(setupValidate); // after every AJAX request 
setupValidate(); // right now 
+1

ありがとうございます。それは私にとっても役に立ちました。 –