2013-08-06 98 views
-1

我動態地添加了一些輸入字段(都有一個「addToQuantityTotal_1」類名) ,並希望用戶只能在裏面輸入數字。JQuery:「event.preventDefault()」不適用於動態創建的元素...?

所以我使用了「上」關鍵字(因爲這是唯一的它,我已經在頁面加載完成後創建的元素的工作方式),一切工作正常,但: 「event.preventDefault()」

它標識用戶按非數字鍵,但仍將其添加到輸入字段。

$('body').on('keydown', 'input.addToQuantityTotal_1', function() { 
    alert("keyCode = " + event.keyCode); 
    // Allow: backspace, delete, tab, escape, and enter 
    if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || 
     // Allow: Ctrl+A 
     (event.keyCode == 65 && event.ctrlKey === true) || 
     // Allow: home, end, left, right 
     (event.keyCode >= 35 && event.keyCode <= 39)) { 
      // let it happen, don't do anything 
      return; 
    } 
    else { 
     // Ensure that it is a number and stop the keypress 
     if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) { 
      alert("this is NOT a number!"); 
      event.preventDefault(); 
     } 
    } 
}); 

任何幫助將不勝感激,謝謝!

+1

你錯過了關於函數參數$('body')的事件'參數on('keydown','input.addToQuantityTotal_1',function(event){' – Daniele

+1

下一次檢查控制檯 –

+0

它如何識別沒有事件參數的非數字按鍵??? – Archer

回答

5

event未定義。它應該是function(event) {...

+0

謝謝Daniel&slash197, 你們倆都幫助:) – spelltox

相關問題