如何在javascript中为动态创建的输入框分配onkeypress-function?
您可以在此处找到我的源代码:http://goo.gl/9BHSt
var cell2 = row.insertCell(1);
var el = document.createElement('input');
el.type = 'text';
el.size = "3";
el.name = 'txtUnit' + iteration;
el.id = 'txtUnit' + iteration;
el.onKeyPress = "return checkIt(event)";
cell2.appendChild(el);
el.type = 'text';
el.size = "3";
el.name = 'txtUnit' + iteration;
el.id = 'txtUnit' + iteration;
el.onKeyPress = "return checkIt(event)";
cell2.appendChild(el);
但是
el.onKeyPress = "return checkIt(event)";
无效。为什么?
答案 0 :(得分:8)
使用它:
el.onkeypress =
function(event)
{
//write your method body
};
或
el.onkeypress = KeyPressHandler;
function KeyPressHandler(event)
{
//write your method body
}
修改强>
你提供了错误的论点。看到这个:
function KeyPressHandler(event)
{
evt = (evt) ? evt : window.event
var charCode = (evt.which) ? evt.which : evt.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
status = "This field accepts numbers only."
return false;
}
status = ""
return true;
}
您应将参数名称更改为 evt
function KeyPressHandler(evt)
{
evt = (evt) ? evt : window.event
var charCode = (evt.which) ? evt.which : evt.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
status = "This field accepts numbers only."
return false;
}
status = ""
return true;
}
我测试了,它工作正常。
答案 1 :(得分:0)
使用jQuery会更好。它有一个live
函数,允许将事件附加到动态添加的元素。