3

私は ajax フォームの送信で次のスニペットを使用しています。

$.ajax({
url: "",
data: ilmoittautumisdata,
type: "POST",
success:function(){

});
error:function(){

});
});

ただし、success と error は非推奨 (?) であるため、その中での使用をやめ、代わりに and を使用するように言われたことを覚えてい $.ajaxComplete();ます $.ajaxError();

ただし、両方を使用したいので、ドキュメントを読んでも役に立ちません。これは私にとってはうまくいきません。

$('#ilmoittuminen').submit(function(){
            var ilmoittautumisdata = $('#ilmoittuminen').serialize();
            $.ajax({
                //url: "",
                data: ilmoittautumisdata,
                type: "POST"
                });
            $.ajaxComplete(
            function(){
            $('#ilmoittuminen').slideUp();
            });
            $.ajaxError(
            function(){

            });
    return false;
    });​

どうすればいいですか?

http://jsfiddle.net/D7qgd/

4

2 に答える 2

3

まず、探している単語は「非推奨」です。私の知る限り、successanderrorプロパティは非推奨ではありません。あなたはそれらを使い続けることができます(あなたの場合はそうすべきです)。

ajaxErrorandを使用しようとする際の問題は、それらがjQuery オブジェクト自体の静的メソッドではなく、インスタンスajaxCompleteメソッドとして実装されていることです。そのため、いくつかの要素を選択して、そのコレクションのメソッドを呼び出す必要があります。要素自体はまったく問題ではありません。

$("#someElement").ajaxComplete(function () {
    // Do stuff
});

まだ遭遇していない次の問題は、ajaxErrorおよび 関連するメソッドがグローバルAJAX イベント ハンドラーを登録することです。これらのメソッドのいずれかを呼び出すたびに、グローバル セットに新しいイベント ハンドラーを追加します。AJAX イベントが発生するたびに、登録済みのすべてのハンドラーが実行されます。


更新(@DCoderに感謝)

successおよびerrorプロパティは、jQuery 1.8 の時点で非推奨になっているようです。代わりに、jQuery で変更された XHR オブジェクトの および メソッドをfail使用doneできます。遅延オブジェクトalwaysから継承するすべてのオブジェクトは、これらのメソッドを使用できます (jqXHR オブジェクトはこれらの 1 つです)。

$.ajax(ajaxSetupObject).done(function () {
    // Handle success
}).error(function () {
    // Handle error
});
于 2012-10-14T09:58:00.527 に答える
1

このコードは、ajaxメソッド内で成功とエラーを処理します。成功した場合は、受け取ったオブジェクトとともに成功を出力します。その逆も同様です。

$.ajax({
   type: 'json',
   url: 'foobar.com',
   success: function(s) { 
     console.log('success' + s);
   },
   error: function(e) {
     console.log('error' + e);
   }
});
于 2012-10-14T10:01:44.897 に答える