我有一个代码片段,在单击复选框时,我将隐藏并显示该字段及其标签。
在 IE7 中
虽然使用兄弟的 hide() 工作正常,但再次单击复选框时,siblings(label).show() 不起作用
代码
更新
<div class="rightcolumn" id="otherlabeldiv">
<p class="clearboth">
<label for="othermakemodel"> Other Make & Model</label>
<input type="checkbox" name="othermakemodel" id="othermakemodel" value="1" class="chk" />
</p>
</div>
<div class="rightcolumn" id="otherdiv" style="display:none;">
<p class="clearboth">
<label for="cemake">* Make</label>
<select name="cemake" id="cemake" class="required">
<option value="Please Select">--Please Select--</option>
<option value="Other">Other</option>
</select>
</p>
<p class="clearboth">
<label for="cemodel">* Model</label>
<select name="cemodel" id="cemodel" class="required">
<option value="">--Please Select--</option>
<!-- <option value="Other">Other</option>-->
</select>
</p>
</div>
使用的 JQUERY
function setUpAjaxCalls(){
$('#cemake').live('change', function() {
var val = $('#cemake :selected').text();
val = val.replace("(",'(');
val = val.replace(")",')');
val = encodeURIComponent(val);
if (val == 'Other'){
//alert(val);
$('#othermakemodel').hide();
$('#othermakemodel').siblings('label').hide();
$('#other_hide').val('1');
$('#otherdiv').show();
$('#cemodel').hide();
$('#cemodel').siblings('label').hide();
}else{
$('#other_hide').val('');
$('#othermakemodel').show();
$('#othermakemodel').siblings('label').show();
$('#otherdiv').hide();
$('#cemodel').show();
$('#cemodel').siblings('label').show();
}
});
}
$(document).ready(function(){
setUpAjaxCalls();
$("#othermakemodel").click(function() {
if($('#othermakemodel').is(':checked')){
$('#cemake').hide();
$('#cemake').siblings('label').hide();
$('#cemodel').hide();
$('#cemodel').siblings('label').hide();
}else{
$('#cemake').show();// THIS WORKs
$('#cemake').siblings('label').show(); // THIS DOESNT WORK
$('#cemodel').show();// THIS WORKs
$('#cemodel').siblings('label').show();// THIS DOESNT WORK
}
});
});
请帮我解决这个问题。
以上是更新的代码,您可以在其中看到“cemake”的值更改为“其他”hodes/显示具有相同兄弟概念的其他品牌/模型文本框,这不适用于复选框...