你好:我有问题,我的复选框,我试图做一个按钮,当它检查它启用否则它是禁用但它不能很好,当我chekcked它启用但当我取消选中它显示按钮启用。为你的帮助。
$(document).ready(function(){
$('#agree').change(function(){
state = $('#agree').attr('value');
if ( state == 'on'){
$('#continue').removeAttr('disabled');
}else if (state == '') {
$('#continue').attr('disabled','disabled');
}
});
});
答案 0 :(得分:1)
您正在测试复选框的值以确定其状态。但是,在选中或取消选中时,其值不会(原生)更改。我建议改为引用JavaScript的checked
属性。请参阅HTML Input Element上的属性列表。
在下面的示例中,我使用this.checked
来引用已触发"更改"的复选框的状态。事件。我还使用ternary operator相应地设置了按钮的disabled
属性。
jQuery('#agree').change(function() {
jQuery('#continue').prop('disabled', this.checked ? false : true);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label><input type="checkbox" id="agree" />Click To Enable</label>
<button id="continue" type="button" disabled="disabled">A Button</button>
&#13;
答案 1 :(得分:0)
在得到你的肯定回答后,我做了所有这些,现在效果很好。
$('#agree').change(function() {
$('#cont').prop('disabled', this.checked ? false : true);
}); //this is the css code and the html code is in down
<!DOCTYPE html >
<html lang = "en">
<head> <meta charset = "utf-8">
<title> removeAttr</title>
</head>
<body>
<p ><input id = "agree" type = "checkbox">I Agree</p><br>
<input type = "submit" value = "Continue" id = "continue" disabled ="disabled">
<script type="text/javascript " src = "JQ.js"></script>
<script type="text/javascript" src = "removeattr.js"></script>
</body>
</html>
答案 2 :(得分:-1)
我认为你最好使用toggleClass。
$('input').on('change',function(){
$('button').toggleClass('disabled');
});
$('button.disabled').on('click',function(e){
e.preventDefault();
});