我需要编写一个循环,它将迭代以下两个语句44次。
window.onload = function() {
var input1 = document.getElementById("alpha1");
var input2 = document.getElementById("alpha2");
var input3 = document.getElementById("alpha3");
input1.onkeypress = alphaFilterKeypress;
input2.onkeypress = alphaFilterKeypress;
input3.onkeypress = alphaFilterKeypress;
};
答案 0 :(得分:1)
它没有问题:
for (var i = 1; i < 45; i++) {
var input = document.getElementById("alpha" + i);
input.onkeypress = alphaFilterKeypress;
}
答案 1 :(得分:1)
为什么不委托活动,而不是循环这44次?附加一个侦听器,并检查id是否与给定的模式匹配
document.body.addEventlistener('keypress', alphaFilterKeypress, false);
您必须更改功能定义 - 添加此检查:
function alphaFilterKeypress(e)
{
e = e || window.event;
var target = e.target || e.srcElement;
if (!target.id.match(/alpha[0-9]+/))
{//don't handle the event
//event was fired on an element with another (or no) id
return e;//don't handle it here
}
//an element with id alpha[number] fired the event
//handle the event
}
从on this previous SO question可以看出,您使用的“key”事件的类型非常重要。如果keypress
事件没有获取退格键,控件等键,那么您可能希望使用keydown
事件。
玩弄它,并找出最适合您需要的活动套件