【问题标题】:Disabling checkbox when a select menu has values选择菜单有值时禁用复选框
【发布时间】:2012-02-26 06:17:27
【问题描述】:

我有一个包含大约四个选项的选择菜单。选择菜单的第一个选项没有值。其他选项具有值。当用户选择具有值的选项时,我需要禁用复选框,否则,如果他们返回具有空白值的选项,则重新启用复选框。

下面的代码成功禁用了复选框,但是我希望在用户单击选择菜单的第一个空白选项时重新启用该复选框。

$(document).ready(function(){
$('#select-menu').change(function() {
  if ($(this).val() !== ':first-child') { 
        $("#related-checkbox").attr("disabled", true);
  } else {
    $("#related-checkbox").attr("disabled", false);
            }
});
});

【问题讨论】:

    标签: javascript jquery select checkbox


    【解决方案1】:

    声明说

    if ($(this).val() !== ':first-child') { 
    

    从字面上检查选定的值字符串是否是“第一个孩子”,而不是它是否是第一个孩子。只需将其设置为空白

    if ($(this).val() !== '') { 
    

    如果要检查它是否是第一个选项(而不是是否为空白),那么您可以将第一个孩子的 val 与所选元素的 val 进行比较

    if ($(this).val() == $(this).children(':first-child').val())
    

    【讨论】:

    • 感谢 mrtsherman,这很有效。非常感谢您的帮助。
    【解决方案2】:

    您的意思是说:“我希望在用户单击选择菜单的第一个空白选项时重新启用复选框。”?

    $("#related-checkbox").removeAttr("disabled");
    

    【讨论】:

    • 是的,这就是我需要它做的事情。谢谢你的建议,我现在试试。
    • mrtsherman 对您的 if 条件是正确的。把 IF 部分改成他说的那样。
    猜你喜欢
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多