javascript - Jquery Prop 。 ("disabled",真)不工作

标签 javascript jquery html

<分区>

我正在根据另一个复选框的状态对复选框进行简单的禁用和启用。我在使用 prop("disabled", true) 禁用复选框时遇到问题。但它不起作用。我尝试使用 prop("checked", true) 并且效果很好。我不明白为什么 prop("disabled", true) 不工作。

HTML:

<div class="form-group question-option-block form-group">
    <label for="option[]" class="control-label">Options</label>    
    <div class="row" style="">
       <div class="col-xs-5 col-md-8"><input class="form-control question-option" name="option[]" type="text" value="0" id="option[]"></div>
       <div class="col-xs-2 col-md-1"><input type="checkbox" class="open_ended_answers" name="open_ended_answers[]" value="1"> Open-ended </div>
       <div class=" col-xs-2 col-md-1"> <input type="checkbox" class="required_open_answers" name="required_open_answers[]" value="1"> Required</div>
    </div>
    <div class="row" style="margin-top:20px;">
       <div class="col-xs-5 col-md-8"><input class="form-control question-option" name="option[]" type="text" value="1" id="option[]"></div>
       <div class="col-xs-2 col-md-1"><input type="checkbox" class="open_ended_answers" name="open_ended_answers[]" value="1"> Open-ended </div>
       <div class=" col-xs-2 col-md-1"> <input type="checkbox" class="required_open_answers" name="required_open_answers[]" value="1"> Required</div>
    </div>
    <div class="row" style="margin-top:20px;">
       <div class="col-xs-5 col-md-8"><input class="form-control question-option" name="option[]" type="text" value="2" id="option[]"></div>
       <div class="col-xs-2 col-md-1"><input type="checkbox" class="open_ended_answers" name="open_ended_answers[]" value="1"> Open-ended </div>
       <div class=" col-xs-2 col-md-1"> <input type="checkbox" class="required_open_answers" name="required_open_answers[]" value="1"> Required</div>
       <div class="col-xs-2 col-md-1"><button class="btn btn-danger btn-flat remove-option">Remove</button></div>
    </div>
</div>

Javascript:

$('.open_ended_answers').change(function() {
    if($(this).is(":checked")) {
      $(this).closest('.row').find(".required_open_answers").prop('disabled',false);
    }
    else{
      $(this).closest('.row').find(".required_open_answers").prop('disabled',true);
      $(this).closest('.row').find(".required_open_answers").prop('checked',false);
    }
});

if(required_open_answers != null){
    required_open_answers_input.each(function(i,val) {
        if(required_open_answers[i] !== undefined) {
            if(open_ended[i] == "1"){
              $(this).prop("disabled", true);
            }else{
              $(this).prop("disabled", false);
            }
            if(required_open_answers[i] == "1"){
              $(this).prop("checked",true);
            }
        }
    });
}

最佳答案

对于 jQuery 1.6+

用户可以使用 .prop() 函数:

$("input").prop("disabled", true);
$("input").prop("disabled", false);

对于 jQuery 1.5 及以下版本

您需要使用.attr() 并禁用复选框

$("input").attr('disabled','disabled');

并重新启用复选框(完全删除属性):

$("input").removeAttr('disabled');

假设您在复选框上有一个事件处理程序,在任何版本的 jQuery 中,您都可以使用以下属性来检查您的复选框是否启用

if (this.disabled){
   // your logic here
}

更多信息:

http://api.jquery.com/prop/#entry-longdesc-1

http://api.jquery.com/attr/

关于javascript - Jquery Prop 。 ("disabled",真)不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40099386/

相关文章:

javascript - 将文本附加到 slider 文本 (display_selector)

javascript - Selenium 找到 remoteWebElement 而不仅仅是 webElement?

javascript - 在 Javascript 中使用动态参数调用动态 jQuery 插件

javascript - 获取点击元素的ID名称

html - 使 div 覆盖视口(viewport)的整个可见部分

javascript - 如何将多个参数从javascript转换为html表单

javascript/jquery 如何设置多个属性

javascript - 如何记住最后提交的表单值,javascript

jquery - Bootstrap 日期时间选择器 "dp.change"

javascript - 使用 jquery 禁用 html 表单中的提交按钮的功能,但它仍然可见