更改jQuery UI下拉菜单's的背景颜色取决于复选框状态

Change a jQuery UI Dropdown's background color depending on Checkbox status

本文关键字:背景 颜色 取决于 状态 复选框 UI jQuery 下拉菜单 更改      更新时间:2023-09-26

我正在使用jQuery UI SelectMenu和jQuery UI自定义复选框和单选按钮来设计页面上的表单样式。在设置表单时,我将下拉列表定义为:

$('select#em_basic_life_plans').selectmenu({
    style:'dropdown',
    width: 378,
    maxHeight: 238
});

并在页面中创建下拉列表,如下所示:

<fieldset>
    <select name="em_basic_life_plans" id="em_basic_life_plans" tabindex="10" />
    <option value="" selected="" class="selectmenu-req-format">Plan: select</option>
    <option value="5K">Plan: 5K Flat Benefit</option>
    <option value="10K">Plan: 10K Flat Benefit</option>
    <option value="100K Maximum">Plan: 100K Maximum</option>
    </select>
</fieldset>

因为有一些下拉列表(如上面的(是必需的,所以我将它们设置为浅黄色背景和深黄色文本,以便用户知道它们是必需的(可选的下拉列表有浅灰色背景和灰色文本(。我通过声明一个不同于SelectMenu CSS中的浅灰色默认设置的背景颜色来实现这一点,并将一个单独的类应用于文本,如下所示:

#em_basic_life_plans-button {background-color: #fff4bf !important;}

以及,写入选项本身(如上所述(:

class="selectmenu-req-format"

希望这能为事情做好准备。现在我的问题是:

如何根据页面上的某个复选框何时被取消选中,将上面下拉列表的背景色从浅黄色改回浅灰色

我认为这会起作用:

$('#basic_cov_life').click(function() {
    if ($('#basic_cov_life').is(':checked')) {
        alert("Debugging: this is now checked.");
    }
    else {
        $('#em_basic_life_plans-button').css('background-color:#B3B3B3;');
    }
});

用于确定是否选中复选框(#basic_cov_life(的代码正在工作。。。只是将颜色改回灰色的代码不起作用:

$('#em_basic_life_plans-button').css('background-color:#B3B3B3;');

关于如何将背景颜色改回浅灰色,有什么想法吗?此外,尽管我还没有使用上面的代码,但我也需要将文本改回灰色。

提前感谢您的任何见解!

Berklie

click处理程序中,this将指向您单击的复选框,这样您就不必使用$('#basic_cov_life')。要设置任何css样式的css方法,需要2个参数(属性/值(或一个映射。试试这个。

$('#basic_cov_life').click(function() {
    if ($(this).is(':checked')) {
        $('#em_basic_life_plans-button').css('backgroundColor', '#fff4bf');//Set the appropriate color here
    }
    else {
        $('#em_basic_life_plans-button').css('backgroundColor', '#B3B3B3');
    }
});
document.getElementById("basic_cov_life").checked // returning boolean

$("#basic_cov_life").attr("checked") // returning attribute value

$("#basic_cov_life").prop("checked") // returning attribute value