如何在javascript中为动态创建的输入框分配onkeypress-function?

时间:2011-04-06 08:23:30

标签: javascript

如何在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)";无效。为什么?

2 个答案:

答案 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函数,允许将事件附加到动态添加的元素。