我创建了一个动态输入并为其应用了一个类,但它不起作用。
我的班级:
$(".numeric_input").keypress(function(e) {
var a = [];
var k = e.which;
for (i = 48; i < 58; i++)
a.push(i);
if (!(a.indexOf(k)>=0))
e.preventDefault();
});
我的代码:
var table = document.getElementById('sizeTable');
for(var i=0;i<sizes.length;i++) {
$("<td></td>").html('<input type=text class=numeric_input name=rows['+i+'].quantity>').appendTo(tr);
$(tr).appendTo(table);
}
应用于其他元素的同一个类正常工作。任何帮助
答案 0 :(得分:3)
由于您是动态创建.numeric_input
,因此您需要以不同方式定位事件。而不是.keypress()
使用.on()
:
$(document).on('keypress', '.numeric_input', function (e) {
var a = [];
var k = e.which;
for (i = 48; i < 58; i++)
a.push(i);
if (!(a.indexOf(k) >= 0))
e.preventDefault();
});
答案 1 :(得分:2)
使用事件委派(作为动态添加的.numeric_input
)
$(document).on('keypress',".numeric_input",function(e) {