我想創建一個自定義事件,只要在輸入type="text"
中輸入一個數字值就會觸發該事件。字母應該被忽略。 change
和blur
事件並不適合我。如何在jQuery中創建自定義事件
有什麼建議嗎?謝謝。
我想創建一個自定義事件,只要在輸入type="text"
中輸入一個數字值就會觸發該事件。字母應該被忽略。 change
和blur
事件並不適合我。如何在jQuery中創建自定義事件
有什麼建議嗎?謝謝。
您可能仍然能夠使用change
或blur
事件,但插入一些額外的邏輯來檢測如果輸入的東西,你會想用觸發一個事件,所以
$(".field").on("change blur keydown keyup", function(){
if($(this).val().match(/^\d+$/){
//your code
} else {
//do nothing
}
});
您正在尋找一個,keypress
或keyup
事件來捕獲輸入,並拒絕非數字輸入。
在這三個選項中,對於整數輸入,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
,應對來自複製粘貼/拖動輸入。
$('#input-id').keyup(function(e)
{
if (e.keyCode >= 48 && e.keyCode <= 57)
{
doThis();
}
});
我認爲這將幫助你..
好ARTICAL是here..http://javascript.mfields.org/2011/creating-custom-events-with- jquery/ 但我不能認爲它需要。你可以使用keydown,按鍵或按照Rob的建議。
您可以輕鬆地創建自定義事件:
// handle event
$('#mydiv').on('customevent', function(e) { });
// trigger event
$('#mydiv').trigger('customevent');
你試過.keyup()或.keypress()嗎? – 2012-03-05 12:34:51