我可以根据所选值显示/隐藏元素吗?
can i show/hide elements depending on the selected value?
这是应该发生的事情:如果选择值"NL",则"地点"和"街道"字段不是必需的。它应该被隐藏。当选择值"BE"时,它应该显示"地点"和"街道"字段/行(带有类for-be(。默认情况下,它应该被隐藏,因为默认情况下选择了"NL"。
<table>
<tbody>
<tr>
<td>
<label>Country: </label>
</td>
<td>
<select name="country" id="Select">
<option value="NL">Netherlands</option>
<option value="BE">Belgium</option>
</select>
</td>
</tr>
<tr>
<td><label>Zipcode: </label></td>
<td><input type="text" name="zipcode" maxlength="6"></td>
</tr>
<tr class="for-be">
<td><label>Place: </label></td>
<td><input type="text" name="place" maxlength="60"></td>
</tr>
<tr class="for-be">
<td><label>Street: </label></td>
<td><input type="text" name="street" maxlength="60"></td>
</tr>
<tr>
<td><label>Number: </label></td>
<td><input type="text" name="number" maxlength="5"></td>
</tr>
</tbody>
</table>
jQuery中的代码我有:
$(document).ready(function(){
var select = $('#Select');
if(select.val() == 'NL'){
$('.for-be').hide();
}
select.change(function(){
if(select.val() == 'NL'){
$('.for-be').hide();
} else if(select.val() == 'BE'){
$('.for-be').show();
}
});
});
它不是这样工作的。编辑:它以这种方式工作(添加了缺少的"(;"(
http://codepen.io/anon/pen/JGzEKJ
select.change(function(){
var selectedV = $('option:selected',this).attr('value');
if(selectedV == 'BE'){
$('.for-be').hide();
}else {
$('.for-be').show();
}
});
只需尝试实现简单的逻辑。
.HTML:
<table>
<tbody>
<tr><td><label>Country: </label></td><td><select name="country" id="Select"><option value="NL">Netherlands</option><option value="BE">Belgium</option></select></td></tr>
<tr><td><label>Zipcode: </label></td><td><input type="text" name="zipcode" maxlength="6"></td></tr>
<tr class="BE all_value"><td><label>Place: </label></td><td><input type="text" name="place" maxlength="60"></td></tr>
<tr class="BE all_value"><td><label>Street: </label></td><td><input type="text" name="street" maxlength="60"></td></tr>
<tr><td><label>Number: </label></td><td><input type="text" name="number" maxlength="5"></td></tr>
</tbody>
</table>
Jquery
$(document).ready(function(){
var select = $('#Select');
select.change(function(){
$(".all_value").hide();
$("."+select.val()).show();
}
});
试试 select.on((。这是一个工作小提琴
https://jsfiddle.net/57gok7c9/
select.on('change',function(){
if(select.val() == 'NL'){
$('.for-be').hide();
} else if(select.val() == 'BE'){
$('.for-be').show();
}
});
编辑 - 正如 satpal 指出的那样,您的代码中有一个简单的语法错误。
试试这个
$('#Select').change(function () {
var textVal= $(this).val();
if (textVal== 'NE') {
$('.for-be').hide();
}
else if(textVal=='BE') {
$('.for-be').show();
}
});
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 随时隐藏元素
- 根据特定条件使用ng显示/ng隐藏来显示/隐藏元素
- 隐藏元素直到加载完成(ng斗篷不是我需要的)
- 在具有类的元素中隐藏元素
- javascript()onclick隐藏元素-dos'我不在firefox工作
- JQueryHide()在按钮中使用元素时不会隐藏元素
- 使用Javascript取消隐藏元素
- 如果鼠标离开父对象,则隐藏元素
- 如何在jquery ajax成功html响应中找到输入隐藏元素
- 基于事件在循环中隐藏元素
- 渐进式增强-不使用CSS隐藏元素
- 隐藏元素后更新滚动条
- jQuery没有隐藏元素
- jQuery隐藏元素在使用CSS显示时保持隐藏状态
- 如何使用javascript在区域外单击时隐藏元素
- 如何在加载网页时隐藏元素
- JS:隐藏元素上的事件侦听器
- HTML 显示/隐藏元素 JS 不起作用