2012-03-05 15 views
0

type="text"に数値を入力するたびにトリガーされるカスタムイベントを作成したいとします。アルファベットは無視する必要があります。 changeblurイベントがうまくいかなかったjqueryでカスタムイベントを作成する方法

提案がありますか?ありがとう。

+0

.keyup()または.keypress()を試してみましたか? –

答えて

1

あなたはまだあなたの入力は、あなたがしてイベントをトリガしたいと思います何かであるかどうかを検出するためにchangeまたはblurイベントを使用しますが、いくつかの追加のロジックを挿入することができるかもしれない、そう

$(".field").on("change blur keydown keyup", function(){ 
    if($(this).val().match(/^\d+$/){ 
     //your code 
    } else { 
     //do nothing 
    } 

}); 
1

​​,keypressまたはkeyupイベントを入力して、非数値入力を拒否することをお探しの場合は、

整数入力の場合、これらの3つのオプションのうち、keypressイベントが非常に適しています。

$('input#selector').keypress(function(event) { 
    if (e.which < 48 || e.which > 57) { // or: 
    //if (!/\d/.test(String.fromCharCode(e.which))) { 
     event.preventDefault(); 
    } 
}); 

しかし、あなたはまた、コピー&ペースト/ドラッグからの入力に対処するために、blur/changeを使用する必要があります。

1
$('#input-id').keyup(function(e) 
    { 
     if (e.keyCode >= 48 && e.keyCode <= 57) 
     { 
      doThis(); 
     } 
    }); 
0

良いarticalはhere..httpです://javascript.mfields.org/2011/creating-custom-events-with- jquery/ しかし、私はそれが必要と思うことはできません。あなたは、keydown、keypressまたはkeyupをRobとして提案するように使うことができます。

2

あなたは簡単にできますカスタムイベントを作成してください:

// handle event 
$('#mydiv').on('customevent', function(e) { }); 

// trigger event 
$('#mydiv').trigger('customevent'); 
関連する問題