Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript使用类而不是id_Javascript - Fatal编程技术网

Javascript使用类而不是id

Javascript使用类而不是id,javascript,Javascript,我有下面的代码,因为它没有验证,所以我想从输入框中删除id,并让Javascript使用类(class=“filterCat”)而不是id。我该怎么做 谢谢 <form id="adv_searchform" action="/" method="get" name="adv_searchform" onsubmit="return manageMultipleCategoriesSearch()"> Search: <input id="adv_s" class="

我有下面的代码,因为它没有验证,所以我想从输入框中删除id,并让Javascript使用类(class=“filterCat”)而不是id。我该怎么做

谢谢

<form id="adv_searchform" action="/" method="get" name="adv_searchform" onsubmit="return manageMultipleCategoriesSearch()">
  Search: 
  <input id="adv_s" class="input input_large" type="text" name="s" value="" />
  <h3>Category filter:</h3>
  <ul id="catSearchFilters">
<li><input type="checkbox" id="filterCat" class="filterCat" value="38">Announcements</li>
<li><input type="checkbox" id="filterCat" class="filterCat" value="39">Commentary</li>
<li><input type="checkbox" id="filterCat" class="filterCat" value="1">Uncategorized</li></ul>  <div class="clear"></div>
  <input type="hidden" name="cat" value="" />
  <input type="submit" id="searchsubmit" value="Search" />
</form>

<script>
function manageMultipleCategoriesSearch(){

  var selectedCats = "";
  var isFirst = true;

  for (i=0; i<document.adv_searchform.filterCat.length; i++){
    if (document.adv_searchform.filterCat[i].checked == true){

    if (!isFirst)
      selectedCats += ',';

      selectedCats += document.adv_searchform.filterCat[i].value;
      isFirst = false;
    }
  }

  document.adv_searchform.cat.value = selectedCats;

  return true;
}
</script>

搜索:
类别过滤器:
  • 公告
  • 评论
  • 未分类的
函数管理多重分类搜索(){ var selectedCats=“”; var isFirst=true;
对于(i=0;i使用名称而不是id。对于不同的复选框,您应该使用不同的名称

<li><input type="checkbox" name="filterCat1" class="filterCat" value="38">Announcements</li>
<li><input type="checkbox" name="filterCat2" class="filterCat" value="39">Commentary</li>
<li><input type="checkbox" name="filterCat3" class="filterCat" value="1">Uncategorized</li></ul>  <div class="clear"></div>
  • 公告
  • 评论
  • 未分类的
  • JS

    var check=document.getElementsByClassName(“filterCat”);
    
    对于(i=0;i使用名称而不是id。对于不同的复选框,您应该使用不同的名称

    <li><input type="checkbox" name="filterCat1" class="filterCat" value="38">Announcements</li>
    <li><input type="checkbox" name="filterCat2" class="filterCat" value="39">Commentary</li>
    <li><input type="checkbox" name="filterCat3" class="filterCat" value="1">Uncategorized</li></ul>  <div class="clear"></div>
    
  • 公告
  • 评论
  • 未分类的
  • JS

    var check=document.getElementsByClassName(“filterCat”);
    对于(i=0;i使用:

    使用:


    不是使用名称的解决方案。我使用以输入名称命名的PHP,如果我将名称添加到其他输入中,那么我必须大量修改PHP代码。谢谢。您不应该对同一文档中的两个或多个元素使用相同的id。我将您的js代码修改为使用类。这应该可以解决您的问题。不是使用名称的解决方案。我使用以输入名称命名的PHP如果我将名称添加到其他输入中,那么我必须大量修改PHP代码。谢谢。您不应该对同一文档中的两个或多个元素使用相同的id。我将您的js代码修改为使用类。这应该可以解决您的问题。创建一个新变量,如so
    var filterCat=document.getElementsByClassName('filterCat');
    然后在调用“filterCat”IDB的输入表单时使用它顺便说一句,这与IE8不兼容。不过,如果幸运的话,您不必支持它:)我建议你使用jQuery,因为minitech已经指出了一件重要的事情。如果你使用jQuery,它更容易进行验证,并且更有可能在IE和其他浏览器中工作。另外,在这里@jacek_podwysocki@jacek_谢谢你。我将尝试不使用jQuery,但现在它很好。创建一个新的va变量如
    var filterCat=document.getElementsByClassName('filterCat');
    然后在调用“filterCat”IDB的输入表单时使用它顺便说一句,这与IE8不兼容。不过,如果幸运的话,您不必支持它:)我建议你使用jQuery,因为minitech已经指出了一件重要的事情。如果你使用jQuery,它更容易进行验证,并且更有可能在IE和其他浏览器中工作。另外,在这里@jacek_podwysocki使用表单时,还提供了一个获取IE中元素id的好教程。谢谢。我将尝试不使用jQuery,但现在它很好。
    document.getElementsByClassName('filterCat')