2016-10-15 1 views
0

私は 'Enter'を押したとき両方のメソッドが同時にコールされますが、Enterを表示するメソッドを1つしかコールしません。ここでchange()とkeydown()を同時に使う方法

<asp:TextBox ID="txtSerialCodePopUp" runat="server" CssClass="txtSerialCodePopUp form-control" placeholder="Enter SerialNo"></asp:TextBox> 


$('.txtSerialCodePopUp').keydown(function(e) 
     { 
      if(e.keyCode == 13) 
      { 
       alert("Enter"); 
       return false; 
      } 
     }); 

     $('.txtSerialCodePopUp').change(function() 
     { 
       alert("Change"); 
       return false; 
     }); 

、txtSerialCodePopUpは、以下のような をトリガする複数のイベントのためのテキストボックス

+0

実行可能なデモ/スニペットや[JSFiddle](https://jsfiddle.net/)を共有できますか? [最小、完全、および検証可能なexample_を作成する](http://stackoverflow.com/help/mcve) – Rayon

+0

私はそれを再現できません:(https://jsfiddle.net/9bp2v6bw/ – Rayon

答えて

3

使用jquery.onです:

$('.txtSerialCodePopUp').on('keydown change ', function(e) { 
    // your code 
}); 
1

イベントの伝播を停止するようにしてください。あなたは「入力」を押したときに別の関数を呼び出すようにしたい場合、これは特に便利ですhttp://output.jsbin.com/dikidasuhu

:ここhttps://api.jquery.com/event.stopimmediatepropagation/

はこのの実装です:あなたは、あなたがここにドキュメントを見つけることができます

$('.txtSerialCodePopUp').keydown(function(event) { 
    if(event.keyCode == 13) { 
    alert("Enter"); 

    // Stop propagation of the event 
    event.stopImmediatePropagation(); 
    return false; 
    } 
}); 

$('.txtSerialCodePopUp').change(function() { 
    alert("Change"); 
    return false; 
}); 

を使用することができますフィールドの入力を変更するときよりも。

+0

event.stopImmediatePropagationの追加後); 2回呼び出されたメソッド。 – user3405179

関連する問題