1

jQuery.validate プラグインを使用して送信されたフォームにアクセスする方法がわかりません。

API オプションの「成功」オプション: http://jquery.malsup.com/form/#options-object

成功関数の4番目のパラメーターはjqueryでラップされたフォームオブジェクトであると言われていますが、jQueryでそれにアクセスしようとすると、undefined.

例のページで成功関数がどのように見えるかを次に示します: http://jquery.malsup.com/form/#ajaxSubmit

function showResponse(responseText, statusText, xhr, $form)  {
    var id=$form.attr('id');
    console.log('id:'+id);
}

残念ながら、console.logは言うUncaught TypeError: Cannot call method 'attr' of undefined.

何かご意見は?

ありがとう、ティム

4

2 に答える 2

0

変数は$私が思うに始めることはできません。を削除して$再試行しますか?

function showResponse(responseText, statusText, xhr, form)  {
    var id = form.attr('id');
    console.log('id:'+id);
}

または、jQueryでない場合、これは別の解決策になる可能性がありますobject

function showResponse(responseText, statusText, xhr, form)  {
    var id = $(form).attr('id');
    console.log('id:'+id);
}

その他の可能性

function showResponse(responseText, statusText, xhr, form)  {
    var id = $(form).attr('id');
    console.log('id:'+id);
}
function showResponse(responseText, statusText, xhr, form)  {
    var id = form.attr('id');
    console.log('id:'+id);
}
function showResponse(responseText, statusText, xhr, $form)  { // Won't work
    var id = form.attr('id');
    console.log('id:'+id);
}
function showResponse(responseText, statusText, xhr, $form)  { // High chance
    var id = $($form).attr('id');
    console.log('id:'+id);
}

お役に立てれば!:)

于 2012-06-08T04:15:17.687 に答える
0

jQueryフォームセレクターを毎回明示的に書き出し、それをオブジェクトとして渡そうとしないことで、この問題を解決しました。

だから、周りを回ろうとするのではなく、$formこれを使いました:

$('#myForm').attr(...)

より冗長ですが、少なくとも機能します。

于 2012-07-21T14:12:12.377 に答える