在此程序中,我需要在未选中复选框时禁用Html Button。仅在选中复选框时才应启用按钮。我使用Jquery版本1.8.3。但是在这个程序中,启用和禁用之间的交换不能像我预期的那样工作。
// ------ HTML
<body>
Some agreement here
<p>
<input type="checkbox" id="agree" />
</p>
<input type="button" value="Continue" disabled="disabled" id="continue"/>
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript" src="js/class.js"></script>
</body>
// ------ JQuery的
$(document).ready(function(){
$('#agree').change(function(){
state = $(this).attr('value');
if(state == 'on'){
$('#continue').removeAttr('disabled');
}else if(state == ''){
$('#continue').attr('disabled','disabled');
}
});
});
答案 0 :(得分:2)
答案 1 :(得分:1)
请尝试以下功能:
$(document).ready(function(){
$('#agree').change(function(){
var checked = $(this).prop('checked')
if(checked){
$('#continue').removeAttr('disabled');
}else{
$('#continue').attr('disabled','disabled');
}
});
});
请参阅this fiddle.
总之,您正在检查#agree
的值,该值未在任何时候设置。 prop()
是确定是否选中复选框的更好方法。 prop()
会返回true
或false
,让事情变得更容易。
答案 2 :(得分:1)
$(document).ready(function(){
$('#agree').change(function(){
if($(this).is(":checked")){
$('#continue').removeAttr('disabled');
}else{
$('#continue').attr('disabled','disabled');
}
});
});
答案 3 :(得分:0)
禁用后的属性后面不需要="disabled"
。只是做:
<input type="button" value="Continue" disabled />
无论如何你应该使用.prop('disabled', true)
。还有.removeProp()
。
答案 4 :(得分:0)
$(document).ready(function(){
$('#agree').click(function(){
$("#continue").attr("disabled", !this.checked);
});
});
我希望这应该有所帮助。 见Fiddle
答案 5 :(得分:0)
一种简单的方法是使用this.checked
或使用$(this).is(":checked")
和prop
来操纵input:button
:
$('#agree').change(function () {
$("#continue").prop("disabled", !$(this).is(":checked"));
//$("#continue").prop("disabled", !this.checked);
});