2017-06-09 4 views
-1

私は、ajaxとjQueryを使用してhtml要素のインライン編集を行っています。 1つの問題を除いてすべてが正常に動作しています。問題は、ajax呼び出しが2つの異なるjQueryイベントで複製されて実行されていることです。 "変更"と "キーダウン"。ここでポイントコードを教えてください:2つの異なるjqueryイベントの重複したajax呼び出しの問題

$(document).on('change', 'selector', function(){ 
    $.ajax({ 
     // ajax code goes here... 
    }); 
}) 

$('selector').keydown(function(event){ 
    if(event.which == 13) 
    { 
     event.preventDefault(); 
     $.ajax({ 
      // ajax code goes here... 
     }); 
    } 
}) 

「変更」イベントが発生した場合、重複するajax呼び出しの問題は発生しません。これは、 "keydown"イベントが発生した場合にのみ表示されます。テキストボックスで値が変更され、enterキーが押されると、ajaxコードが呼び出され、フィールドが更新されます。しかし、ページのどこかをクリックすると、同じAjax呼び出しが再び実行されます。どうすればこの問題を解決できますか? 2つのコードスニペットに使用

UPDATE

セレクタは同じであり、その<input type="text" />

+0

あなたの 'selector'が' input'の場合、それは完全に動作しています – Manoj

+0

はセレクターですクラスはボタンまたはテキストボックスも参照していますか? –

+0

@Manojは入力ボックスです。 – user5307298

答えて

1

私はあなたの質問を正しく理解していれば、このcode exampleが問題を解決するはずです。

基本的に1つのイベント()を使用し、入力の元の値を保存することで、希望するイベントをchangeでもシミュレートできます。

keyupは入力要素の新しい値を持つので、ここではより良いオプションです。

+0

私はそれを見たが、あなたが入力を終えたときだけ?それは賢明ではない! – user5307298

+0

だからこそ私は質問を正しく受けているかどうかわからなかった。なぜあなたは 'change'イベントが必要なのか、このイベントでいつAjaxリクエストを呼びたいのですか? –

+1

plzチャットルームに来なければ、たくさんのコメントがSTOポリシー – user5307298

関連する問題