2017-11-16 5 views
0

フォームから入力値を取得するためにajaxで作業していましたが、コンソールを調べると0に戻ります。私はあまりにもAjax全体に精通していないので、私はthisを正しく使用していないかどうか、または私はどこか他のエラーがある場合はわからない。ここでajaxでデータをマッピングすると、ゼロが返されます

は、私が持っているものです。

JS:コンソールで console.log($(this).find('#input_18_16').val());

jQuery(this).find(".form-item").on("submit", function(e) { 
    var $this = jQuery(this); 
    if (this.checkValidity()) { 
     e.preventDefault(); 
     $.ajax({ 
     url: Config.ajaxurl, 
     type: 'POST', 
     dataType: 'json', 
     accepts: 'application/json', 
     context: this, 
     data: { 
      action: 'process_form', 
      form_info: { 
      "input_18_16": $(this).parents('.form-item').find('#input_18_16').val() || '', 
      "input_18_17": $(this).parents('.form-item').find('#input_18_17').val() || '', 
      "input_18_3": $(this).parents('.form-item').find('#input_18_3').val() || '', 
      "input_18_2": $(this).parents('.form-item').find('#input_18_2').val() || '' 
      }, 
     }, 
     success: function(data, status, xhr) { 
      console.log('Response:\n', data) 
      console.log('successful trigger'); 
      console.log($(this).find('#input_18_16').val()); 
     }, 
     error: function(xhr, code, error) { 
      console.log(error) 
     } 
     }) 
    } 
    }); 

狂気の事は、私がこれからデータを正しく取得することができるということです。何らかの理由でconsole.log('Response:\n', data)Response:0に戻ってきたので、なぜ成功したのですが、何も返せないのか分かりません。

+0

あなたが正しいかもしれません、その時点での '$(this)'はajax呼び出しを参照することができます... 'this'が正しい要素を指しているかどうかわからない場合は、コンソールで... –

答えて

-1

";" console.log( 'Response:\ n'、data)の行にあります。 "\ n"はconsole.logのメンテナンスには影響しないと思います。

EGG:この後、チェックアウトそれhttps://api.jquery.com/serialize/あなたが$this代わりの$(this)を使用する必要がありますsuccess機能で

+0

私は;そのコンソールの最後に.log行はまだ0で戻ってきます。 – ultraloveninja

+0

行方不明の ';'はなぜ問題になるのでしょうか? Javascriptにはセミコロンの自動挿入があります。 – Barmar

0

あなたの人生をより簡単にすることができます。そういうわけで、あなたが最初に設定したのですね。

data:オプションでも使用できます。jQuery()を繰り返し呼び出す代わりに、変数を再利用する方が効率的です。

0

'console.log(' Response:\ n '、data)'のデータは、ajaxが成功した後、実際にsuccess関数から返されます。 IsはあなたがConfig.ajaxurlに投稿しているデータと同じではありません。

関連する問題