在jquery中,该复选框不起作用

时间:2016-02-05 21:06:57

标签: jquery checkbox

你好:我有问题,我的复选框,我试图做一个按钮,当它检查它启用否则它是禁用但它不能很好,当我chekcked它启用但当我取消选中它显示按钮启用。为你的帮助。

$(document).ready(function(){    
    $('#agree').change(function(){
       state = $('#agree').attr('value');
       if ( state == 'on'){
          $('#continue').removeAttr('disabled');
       }else if (state == '') {
          $('#continue').attr('disabled','disabled');
       }
    });
});

3 个答案:

答案 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;
&#13;
&#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();
});