Javascript Java脚本在chrome中工作,但在IE中不工作
我正在用javascript进行一些验证。铬合金不错,但和往常一样,IE正在升级 我的代码在下面Javascript Java脚本在chrome中工作,但在IE中不工作,javascript,internet-explorer,Javascript,Internet Explorer,我正在用javascript进行一些验证。铬合金不错,但和往常一样,IE正在升级 我的代码在下面 function check(a,id){ inputs = document.getElementsByName('attname[]'); for (var ind in inputs){ if (inputs[ind].value=="") { alert("Please complete every participant"); return fa
function check(a,id){
inputs = document.getElementsByName('attname[]');
for (var ind in inputs){
if (inputs[ind].value=="") {
alert("Please complete every participant");
return false;
}
}
$("#UserForm").submit();
}
我建议您将JQUery用于其他内容,而不仅仅用于提交表单 JQuery处理浏览器问题,易于使用,并且是一个抽象层,用于解决JavaScript在不同浏览器之间的兼容性问题
<script type="text/javascript">
function check(a, id) {
$("[name=attname]").each(function() {
if(($this).val() == "") {
alert("Please complete every participant");
return false;
}
});
return true;
}
</script>
功能检查(a、id){
$(“[name=attname]”。每个(函数(){
if(($this.val()==“”){
提醒(“请填写每位参与者”);
返回false;
}
});
返回true;
}
您没有提到实际问题是什么(“播放”并不是一个有用的描述;),也没有提到您正在测试的IE版本,但我猜是IE9或更早版本
您的问题可能是由于document.getElementsByName()
存在错误,并且没有在IE9和更早版本中正确实现。(不过在IE10中这是可以的)
您可以看到完整的浏览器兼容性图表,以及有关IE中bug的注释
解决方案取决于您需要支持哪些IE版本
如果您对支持IE8及更高版本感到满意,可以使用document.querySelectorAll()
。这将使用CSS选择器选择元素,因此您可以执行以下操作:
var inputs = document.querySelectorAll('[name=attname\\[\\]]');
这将直接替代现有的getElementsByName()
调用,并将在IE8以上的所有IE版本以及所有其他浏览器中工作
<script type="text/javascript">
function check(a, id) {
$("[name=attname]").each(function() {
if(($this).val() == "") {
alert("Please complete every participant");
return false;
}
});
return true;
}
</script>
请注意,使用这种语法,您必须对[]
字符进行反斜杠转义,因为它们是CSS中的保留字符。(反斜杠加倍的原因是,还必须在Javascript字符串中转义反斜杠)
此语法在IE7中不起作用,因为它不受支持(有关浏览器支持信息,请参见此处)[http://caniuse.com/queryselector]),因此,如果您需要支持IE7,则必须找到替代解决方案。我的建议是使用像jQuery这样的库,否则您将花费大量时间与IE7有限的DOM功能进行斗争。或者你可以放弃IE7支持:这也是个好主意。我看到了两个问题。您忘记声明
输入
,应该使用常规的for
循环进行循环。但对IE的问题不太确定。您在使用jQuery吗?我们不知道他是否在使用jQuery,例如:function$(sel){returndocument.querySelector(sel)}
查看他的最后一行代码$(“#UserForm”).submit();如果这不是JQuery,还有什么?但谢谢你没有阅读就投了反对票……这不是我的反对票,但看看我的最上面的评论,可能是那样或类似的。这就是为什么我问OP是否在使用jQuery…不,我只是在使用javascript