【问题标题】:Unchecking a checkbox unchecks another checkbox取消选中一个复选框会取消选中另一个复选框
【发布时间】:2013-11-19 20:51:40
【问题描述】:

如果我的#ranged_pricing 复选框未选中,我希望我的#pass_through_card 复选框未选中,因为您应该无法在未选中#ranged_pricing 的情况下选中#pass_through_card。如果选中了#ranged_pricing,则不必选中#pass_through_card 复选框,这就是为什么我只输入“什么都不做”的原因。我做错了什么?

HTML

<input type="checkbox" id="ranged_pricing"/>
<label for="ranged_pricing">
        Ranged Pricing
</label>

<input type="checkbox" id="pass_through_card">
<label for="pass_through_card">
    Pass Through Card Association Dues and Assessments
</label>

Javascript

$(document).ready(function() {
if($('#ranged_pricing').prop(':checked')) {
    //Do Nothing
} else {
    $('#pass_through_card').removeAttr('checked');
}
});

【问题讨论】:

  • 你不需要附加一个事件吗?像这样jsfiddle.net/8uJ2B ?
  • 如果我正确阅读了您的问题,您是否只想在未选中另一个复选框时取消选中某个复选框?所以只有在初始化时才对吗?在这种情况下,我想知道,为什么不在服务器端处理呢?
  • PSL - 附加到事件有效。谢谢!

标签: javascript jquery checkbox unchecked


【解决方案1】:

当您调用.prop() 时,它应该只是“checked”,而不是“:checked”。

if ($('#ranged_pricing').prop('checked')) {

“:checked”符号用于选择器语法。当您在对.prop() 的调用中包含“:”时,结果将始终为false

【讨论】:

    【解决方案2】:

    试试,

    if($("#ranged_pricing").prop('checked') === true){
    //do nothing
    } else {
    $("#pass_through_card").prop('checked', false);
    }
    

    您可能还希望将选中的事件绑定到 ranged_pricing,以便在未选中时禁用 pass_through_card 元素。

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 2021-12-23
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-20
      • 2020-03-16
      相关资源
      最近更新 更多