所以我试图禁用文本字段,如果没有选中复选框,但它不能正常工作。
<input type="checkbox" id="check" checked /><br />
#<input type="text" size="8" maxlength="6" id="colour" placeholder="ffffff" />
<script>
$('#check').change(function(){
if( $('#check:checked') ){
$('#colour').removeAttr('disabled');
} else {
$('#colour').attr('disabled','');
}
});
</script>
这是我正在尝试做的一个简短示例,但它不想工作。控制台中没有错误。
有人可以解释为什么这不起作用吗?
答案 0 :(得分:9)
使用.prop()也可以使用checked状态来设置值
$('#check').change(function () {
$('#colour').prop('disabled', !this.checked);
});
演示:Fiddle
答案 1 :(得分:4)
尝试$('#check').is(':checked')
这里是Fiddle
答案 2 :(得分:1)
使用length
查找是否已选中元素,否则您的条件将始终为true
。当长度较大时,0条件将为true
,否则为false
。
if( $('#check:checked').length ){
$('#colour').removeAttr('disabled');
} else {
$('#colour').attr('disabled','');
}
您可以直接使用checked属性而无需使用条件。
$('#check').change(function () {
$('#colour').prop('disabled', !this.checked);
});
答案 3 :(得分:1)
试试这个:
$('#check').change(function(){
if($('#check').is(':checked')){
$('#colour').removeAttr('disabled');
} else {
$('#colour').attr('disabled','');
}
}).change();
为了让你的jsFiddle工作,你需要:
1)包含jQuery库
2)使用is(':checked')
检查是否选中了复选框。
3)在页面加载时触发change()
事件以捕获默认的已检查状态。
<强> Fiddle Demo 强>
答案 4 :(得分:1)
使用this.checked
$('#check').change(function(){
if(this.checked){
$('#colour').removeAttr('disabled');
} else {
$('#colour').attr('disabled',true);
}
});
<强> FIDDLE 强>
答案 5 :(得分:1)
你走了:
<input type="checkbox" id="check" checked /><br />
#<input type="text" size="8" maxlength="6" id="colour" placeholder="ffffff" />
<script>
$('#check').change(function(){
if( $('#check').is(":checked") ){
$('#colour').removeAttr('disabled');
} else {
$('#colour').attr('disabled','');
}
});
</script>
答案 6 :(得分:1)
检查此代码..使用this.checked
$('#check').change(function(){
if(this.checked)
$('#colour').removeAttr('disabled');
else
$('#colour').attr('disabled','disabled');
});