这是一个跟进问题。当下拉菜单的值为“tid and acc”时,我试图隐藏一个输入框。我不知道为什么这个代码不起作用,任何帮助将不胜感激!以下是关于jfiddle的链接:http://jsfiddle.net/Mm7c7/
<script>
$('#rule-type').change(function() {
var val = $(this).val();
if (val == 'tid and acc') {
$('#tid-acc').show();
}
else {
$('#tid-acc').hide();
}
});
</script>
<select id="rule-type">
<option value="" selected="selected">None</option>
<option value="tid">tid</option>
<option value="tid and acc">tid and acc</option>
<option value="xid">xid</option>
</select>
<input id="tid-acc">
答案 0 :(得分:2)
在元素准备好之前,正在评估您的脚本。将脚本放在$(document).ready()中或在其影响的内容之后将解决问题
$(document).ready(function(){
$('#rule-type').change(function() {
var val = $(this).val();
if (val == 'tid and acc') {
$('#tid-acc').show();
}
else {
$('#tid-acc').hide();
}
});
});
答案 1 :(得分:0)
点击此处查看工作样本:http://jsfiddle.net/Mm7c7/1/
HTML:
<select id="rule-type">
<option value="" selected="selected">None</option>
<option value="tid">tid</option>
<option value="tid and acc">tid and acc</option>
<option value="xid">xid</option>
</select>
<input id="tid-acc">
使用Javascript:
$('#rule-type').change(function() {
var val = $(this).val();
if (val == 'tid and acc') {
$('#tid-acc').show();
}
else {
$('#tid-acc').hide();
}
});
答案 2 :(得分:0)
夫妻问题:
$(function(){})
中以确保DOM已准备就绪,或将其放在HTML下面(建议使用前者)。如果你不包装它(或删除它),那么在实际呈现元素之前执行脚本,导致$('#rule-type')
为undefined
。工作版:
<script>
$(function(){
$('#rule-type').change(function() {
var val = $(this).val();
if (val == 'tid and acc') {
$('#tid-acc').hide();
}
else {
$('#tid-acc').show();
}
});
});
</script>
<select id="rule-type">
<option value="" selected="selected">None</option>
<option value="tid">tid</option>
<option value="tid and acc">tid and acc</option>
<option value="xid">xid</option>
</select>
<input id="tid-acc" />