2

私はlive()関数を使用して、ajaxを使用してロードされたフォームを検証しています。これがないと機能しないためです。

以前は、フォームの検証はキーアップで行われました(ただし、どこにも指定したことはありません)。これで、ユーザーが送信ボタンをクリックした場合にのみ機能します。live()関数を使用するときに、onkeyup検証を元に戻し、送信時に検証を保持することは可能ですか?

$(".createBtn").live('click', function() {
$("#createAcc").validate({

次のプラグインを使用して検証を行っています。

bassistance.de/jquery-plugins/jquery-plugin-validation/
4

4 に答える 4

2

スティーブンが言ったように、連鎖することも、次のように複数のイベントを指定することもできます。

http://jsfiddle.net/gLWRs/1/

$('.createBtn').on({
  click: myFn,
  keyup: myFn    
});​

これは。でも機能しliveます。

ただし、質問を読み直すと、イベントはさまざまな要素で発生するため、おそらく次のようなものが必要になります。

$('.createBtn').on({ click: myFn });
$('input').on({ keyup: myFn });
于 2012-09-21T15:00:37.333 に答える
1

関数を取得して、次のように変数に設定できます。

var myFn = function() { ... };

次に、その関数を両方のイベントハンドラーに登録できます。

$(".createBtn").on('click', myFn).on('keyup', myFn);
于 2012-09-21T14:58:19.047 に答える
1

複数のイベントを同じ要素にバインドできます。これを試してください

$(".createBtn").live('click keyup', function() {

    yourFunctionCall();
});

また、.live()は、最新のjQueryバージョンで非推奨になりました。

代わりに.on()を使用することをお勧めします。

于 2012-09-21T15:10:33.067 に答える
0

document.readyのサーバーから取得したhtmlソースに検証の初期化を追加できます。

if(isAjax)
{
    $(function() {
       // Init you validation
    });
}
于 2012-09-21T15:05:34.220 に答える