Javascript Java脚本在chrome中工作,但在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

我正在用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 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