Javascript无法将现有函数应用于onkeyup

时间:2015-09-07 23:02:03

标签: javascript javascript-events iterator html-input selectors-api

我有一堆HTML编号输入,我已经抓住它们

x=document.querySelectorAll('input[type="number"]');

然后尝试使用for循环迭代这个,并应用onkeyup函数。功能如下:

t=function(elem){


elem.onkeyup=function(e) {
  if(!/[\d\.]/.test(String.fromCharCode(e.which))) {
    elem.value='';
}
};
};

基本上,如果输入了一个字母,它的作用就是清楚输入的值。我知道我可以通过HTML应用它

<input type='number' onkeyup='t(this)'/>

但我怎么能用javascript做到这一点?我尝试用

迭代它
x=document.querySelectorAll('input[type="number"]');
for(i=0; i<x.length; i++){
    x[i].onkeyup=t(this);
}  

但它不起作用。我究竟做错了什么?我怎样才能做到这一点?请定期JavaScript答案,不要使用jQuery或其他框架/库。

2 个答案:

答案 0 :(得分:1)

变化

x[i].onkeyup=t(this);

x[i].onkeyup=t(x[i]);

因为this不是您想要的

答案 1 :(得分:0)

道歉,全部。我找到了答案。同意Jaromanda X,我需要改变

0.10-SNAPSHOT

x[i].onkeyup=t(this);

这(双关语;)是问题的一部分,但主要问题是有效的属性名称是

x[i].onkeyup=t(x[i]);

而不是

keyup=function();