【发布时间】:2015-02-18 10:00:54
【问题描述】:
我希望有人可以帮助我创建一个带有 10 个数字输入字段的 HTML 表单,其中包含 class="takings"。我想将一个 JS 函数理想地附加到每个事件的 onchange 事件中,但如果必须,我会选择 onmouseup 或类似的。 以下是从外部 js 文件中调用的:
function init(){
var input = document.getElementsByClassName("takings");
for (var i = 0; i < input.length; i++) {
input[i].onchange = function()
{
alert('testing');
}
input[i].value = 0.00;
}
}
window.onload=init;
我已经在 Firefox 和 chrome 上测试了这段代码,它运行良好。但是它在 IE 上不起作用(到目前为止我已经测试过 IE8 和 IE11)。我需要让这个应用程序在 IE 中运行,因为它是我们在公司网络上使用的唯一浏览器。由于其他依赖项发生变化,它甚至不是一个选项。 我确实短暂地想到,我们可能有一些组策略阻止了某些浏览器功能,但同样的行为发生在我们的域之外。 谁能告诉我哪里出了问题或在 IE 上实现等效功能的方法?
非常感谢
*****更新**********
function init(){
var input = document.querySelectorAll(".takings");
for (var i = 0; i < input.length; i++) {
input[i].attachEvent("onchange", function () {alert('testing');});
input[i].value = 0.00;
}
}
此代码仅适用于 ie8,不适用于 ff 或 ie11
【问题讨论】:
-
IE8(作为黑暗时代的浏览器,应该从宇宙中淘汰)不支持
getElementsByClassName。不过它应该可以在 IE11 上运行。 -
假设这是一个文本字段:尝试 onkeyup() w3schools.com/jsref/event_onkeyup.asp
-
尝试使用 document.querySelectorAll(".takings");
-
我认为从 ie9 开始,querySelectorAll 会起作用,如果您还有任何问题,请告诉我
标签: javascript internet-explorer