javascript
2011-04-06 41 views 0 likes 
0

我该如何分配onkeypress函数来动态创建javascript中的输入框?我该如何分配onkeypress函数来动态创建javascript中的输入框?

你可以在这里找到我的源代码: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)";不工作。为什么?

回答

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

我测试,它工作得很好。

+0

嗨, 我试过上面的方法。但不工作,, SORCE代码:http://dl.dropbox.com/u/7384181/test_keypress.html 对于第二个输入框不调用该函数。 。:( – 2011-04-06 10:51:46

+0

看到我编辑的答案 – 2011-04-06 11:07:09

+0

感谢Farzin :)干杯! – 2011-04-06 12:52:34

0

你会更好地使用jQuery。它有一个live函数,它允许将事件附加到动态添加的元素。

相关问题