1

嗨,网络上的好人,我对下面的脚本有疑问。

我不断收到object doesn't support this property or method有关方法的问题.length。有任何想法吗 ?

谢谢杰

$('input:hidden').each(function(){
    var name = $(this).attr('name');
    if($("[name='"+name+"']").length >1){
        if($(this).attr('type')!=='radio' && $(this).attr('type')!=='submit' 
                                          && $(this).attr('type')!=='button' 
                                          && $(this).attr('type')!=='text'
                                          && $(this).attr('type')!=='checkbox'
                                          && $(this).attr('type')!=='select'){
            $(this).remove();
        }
    }
});
4

4 回答 4

0

您确实需要解决潜在的重复问题,而不是破解由此产生的错误。

也就是说:尽管Internet Explorer(至少 8 个)在单个输入字段上没有长度属性,但IE8 中的 jQuery 1.10将在 .length 和 .size() 上返回 1,因此您需要向我们提供更多信息并显示一些html

<!DOCTYPE html>
<html>
<head>
<title>Test length</title>
<script src="http://code.jquery.com/jquery-1.10.0.min.js"></script>
<script>
$(function(){
    $.each(["test1","test2"],function(i,name) {
      var input = $("input[name="+name+"]");
      var dotlength = input.length;
      var size = input.size();
      window.console && console.log("input.length:",dotlength);
      window.console && console.log("input.size():",size);  
  });
});
</script>
</head>
<body>
<input name="test1" /><hr>
<input name="test2" /><br><input name="test2" /><br>
</body>
</html>

在 IE 中给出:

LOG: input.length:1
LOG: input.size():1
LOG: input.length:2
LOG: input.size():2
于 2013-06-24T09:22:04.147 回答
0

尝试使用size()而不是length

$("[name='"+name+"']").size()
于 2013-06-24T09:09:02.227 回答
0

不需要检查那些东西,试试下面的代码:

$(document).ready(function() {
    $('input:hidden').each(function(){
      var name = $(this).attr('name');
      $("[name='" + name + "']").slice(1).remove();
    });
});
于 2013-06-24T09:48:33.290 回答
0

既然你说你很新。您可以将以下任何插件用于您的多表单,这样您就可以避免Browser compatibility issues并使您的代码干净

http://mstratman.github.io/jQuery-Smart-Wizard/
http://wbotelhos.com/stepy
http://thecodemine.org/

于 2013-06-24T10:45:28.473 回答