繁体   English   中英

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

[英]How can i Assign onkeypress-function to dynamically created input-boxes in 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)"; 不管用 。 为什么呢

用这个 :

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;
} 

我进行了测试,并且效果很好。

使用jQuery会更好。 它具有live功能,可以将事件附加到动态添加的元素上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM