问题描述
|
Internet Explorer 7无法正确处理按钮,因为它发送的是“ 0”和“ 1”之间的文本,而不是数值。 (很奇怪,但确实如此。)该Javascript应该通过发送按钮
onClick
的值来纠正此问题。但这行不通。有人可以看到错误吗?
我用它来附加HTML5中的Javascript文件:
<script src=\"buttonfix.js\"></script>
buttonfix.js的内容:
function runonclick()
{
var count = 0;
var formlength = this.form.elements.length;
while(count < formlength)
{
if(this.form.elements[count].tagName === \"button\")
{
this.value = this.attributes.getNamedItem(\"value\").nodeValue;
}
count++;
}
}
function buttonfix()
{
var buttonarray = document.getElementsByTagName(\"button\");
var count = 0;
var buttonarraylength = buttonarray.length;
while(count < buttonarraylength)
{
buttonarray[count].onClick = runonclick();
count++;
}
}
window.attachEvent(\"onload\",buttonfix());
解决方法
我建议您尝试:
if(this.form.elements[count].tagName.toLowerCase == \"button\");
代替:
if(this.form.elements[count].tagName == \"button\")
因为tagName
属性通常返回大写的字符串。
另一行不起作用:
buttonarray[count].onClick = runonclick();
由于JavaScript是区分大小写的语言,因此您必须使用事件的标准名称(onclick
)。
buttonarray[count].onclick = runonclick();
但是,您可能仍在HTML中使用ѭ2(而不是XHTML)。