根据Checkbox状态更改jQuery UI Dropdown的背景颜色

时间:2011-08-23 16:36:29

标签: javascript jquery jquery-ui jquery-selectors selector

我正在使用jQuery UI SelectMenujQuery UI Custom Checkboxes and Radio Buttons来设置页面上的表单样式。在设置表单时,我将下拉列表定义为:

$('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

2 个答案:

答案 0 :(得分:2)

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');
    }
});

答案 1 :(得分:0)

document.getElementById("basic_cov_life").checked // returning boolean

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

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