在HTML表单中隐藏多个字段

hiding multiple fields in html form

本文关键字:字段 隐藏 HTML 表单      更新时间:2023-09-26

HTML表单中有多个具有相同id的字段如果某个字段的值为1我想隐藏它们但它只隐藏该id的第一个字段所有其他字段都不隐藏

<div class="form-group">
    <label class="col-md-3 control-label" for="example-text-input" id="g">Days of week</label>
    <div class="col-md-9">
        <div class="checkbok">
            <label for="example-checkbox1">
            <input type="checkbox" id="g" name="gender" value="monday">Monday
            </label>
        </div>
        <div class="checkbok">
            <label for="example-checkbox1">
            <input type="checkbox" id="g" name="gender" value="tuesday">Tuesday
            </label>
        </div>
        <div class="checkbok">
            <label for="example-checkbox1">
            <input type="checkbox" id="g" name="gender" value="wednesday">Wednesday
            </label>
        </div>
        <div class="checkbok">
            <label for="example-checkbox1">
            <input type="checkbox" id="g" name="gender" value="thursday">Thursday
            </label>
        </div>
        <div class="checkbok">
            <label for="example-checkbox1">
            <input type="checkbox" id="g" name="gender" value="friday">Friday
            </label>
        </div>
        <div class="checkbok">
            <label for="example-checkbox1">
            <input type="checkbox" id="g" name="gender" value="saturday">Saturday
            </label>
        </div>
        <div class="checkbok">
            <label for="example-checkbox1">
            <input type="checkbox" id="g" name="gender" value="sunday"> Sunday
            </label>
        </div>
    </div>
</div>  
<div class="form-group">
    <label class="col-md-3 control-label" for="example-text-input" id="g">Time</label>
    <div class="col-md-3">
        <select id="g" name="nod" class="form-control">
        <?php 
            for($i=1;$i<=12;$i++){
                echo"<option value='$i'>$i AM</option>"; 
            } 
            for($i=1;$i<=12;$i++){
                echo "<option value='12+$i'>$i PM</option>";
            }?>                         
        </select>
    </div>
</div>  

所有元素具有相同的id="g"。下面是javascript代码

<script type="text/javascript">
    var ele=document.getElementById("st").value;
    if(ele==1)
        document.getElementById("g").style.visibility = "hidden";
    //else
        //document.getElementById("g").style.visibility = "none";
</script>

但是只有第一个元素(即文本星期几)被隐藏,所有其他元素都被显示。如何隐藏所有其他

ID在html字段中应该是唯一的,但是你可以有相同的name属性/classname。您必须循环遍历使用classname或name属性提取的元素数组。

使用name attribute

 function hideGender(){
     var ele=document.getElementById("st").value;
   if(ele==1){
    var elements=document.getElementsByName("gender");
    for(var i=0;i<elements.length;i++)
     elements[i].style.visibility = "hidden";
   }
 }

id在文档中应该是唯一的。Change id="g" to class="g"

 <label for="example-checkbox1">
      <input type="checkbox" class="g" name="gender" value="saturday"> Saturday
 </label>

    <script type="text/javascript">
   Array.filter( 
   document.getElementsByClassName('g'),
   function(elem){
   elem.style.visibility = 'hidden';
   });
    </script>

要选择具有相同id的多个字段,您必须使用-

$('[id="yourFieldId"]');

在你的例子中-

var ele=document.getElementById("st").value;
if(ele==1)
   $('[id="yourFieldId"]').hide();