我有一堆的HTML数量投入,我已经JavaScript不能应用现有功能的onkeyup
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或其他框架/库。
顺便说一句,THI s创建非常差的UI体验,用户仍然可以通过复制,粘贴或拖放来输入非数字字符。最好在完成输入数据并提示错误时检查结果,而不要试图超出用户的想象。 – RobG
查看'input'事件来替换'keyup' – dandavis