点击复选框后,我有以下代码启用提交按钮。
HTML:
<input type="checkbox" checked="checked" id="check"><a href="#">terms and conditions</a>
<input type="submit" name="submit" id="post" value="submit">
脚本:
$('#check').click(function(){
if($(this).attr('checked') == false){
$('#post').attr("disabled","disabled");
}
else {
$('#post').removeAttr('disabled');
}
});
但这不适用于我的localhost。即使未选中该复选框,该按钮也会一直启用。请帮我把它搞定。
答案 0 :(得分:1)
$('#check').click(function() {
$('#post').prop('disabled', !$(this).is(':checked'));
}
.attr()
检查HTML中的属性,而不是HTML的当前状态; .is(':checked')
测试后者。另外,我认为最好使用.prop()
动态更改元素的禁用状态。
答案 1 :(得分:0)
如果您选中,是否禁用它,然后取消选中该复选框?如果是这样,那么您只需将disabled设置为默认状态。
答案 2 :(得分:0)
使用.is(':checked')
$('#check').click(function() {
if(!$(this).is(':checked')) {
$('#post').attr("disabled","disabled");
} else {
$('#post').removeAttr('disabled');
}
});
答案 3 :(得分:0)
$(this).attr('checked')将始终为true,它只是读取“已检查”的attr值,
使用
this.checked
或
$(this).prop('checked')
答案 4 :(得分:0)
以下是filddle
以下是使用它的javascript
$(function(){
$('#check').click(function(){
if($(this).attr('checked')!="checked"){
$("#post").attr("disabled","disabled");
} else {
$("#post").removeAttr("disabled");
}
});
});
答案 5 :(得分:0)
很多答案。
不要将任何表单控件称为“提交”,因为它会影响表单的提交方法(即form.submit
将引用控件,而不是方法)。
您需要的只是:
<form ...>
<input type="checkbox" onclick="this.form.submitButton.disabled = !this.checked" ...>
<input type="submit" name="submitButton" disabled>
</form>