Javascript 在html表单中隐藏多个字段
我在HTML表单中有多个具有相同id的字段,如果某个特定字段的值为1,我想隐藏它们,但它只隐藏该id的第一个字段,所有其他字段都不隐藏Javascript 在html表单中隐藏多个字段,javascript,html,Javascript,Html,我在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="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在文档中应该是唯一的。
将id=“g”
更改为class=“g”
星期六
数组.筛选器(
document.getElementsByClassName('g'),
功能(elem){
elem.style.visibility='hidden';
});
要选择具有相同id的多个字段,您必须使用-
$('[id="yourFieldId"]');
那么你的情况呢-
var ele=document.getElementById("st").value;
if(ele==1)
$('[id="yourFieldId"]').hide();
ID在html字段中应该是唯一的,但可以具有相同的名称属性/类名。必须循环使用classname或name属性提取的元素数组
在您的情况下,使用名称属性
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";
}
}
函数hideGender(){
var ele=document.getElementById(“st”)值;
如果(ele==1){
var elements=document.getElementsByName(“性别”);
对于(var i=0;所有元素都具有相同的id=“g”-首先修复该问题。HTML不允许这样做。可能会有帮助。请检查此页面应该只有一个具有特定ID的元素,他们不应重复。HTML文档不能有多个具有相同ID的元素。这就是为什么Javascript只查找第一个元素,然后停止。请使用类和getElementsByClassName
相反。什么?这不起作用。非常糟糕的做法ID的全部要点是唯一的,只需使用一个类就可以了。这就是类的全部要点。我同意这是一个糟糕的做法,但是jquery会起作用,尽管最初的问题没有提到jquery@Josh史蒂文斯:我已经试过了,而且很有效。你的观点是绝对正确的非常正确,应该使用一个类来选择多个字段。但是他的要求是id,因此解决方案适合。元素[i]…style.visibility=“hidden”
需要固定为1点
var ele=document.getElementById("st").value;
if(ele==1)
$('[id="yourFieldId"]').hide();
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";
}
}