2013-08-06 58 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

相关问题