jQuery,如何在页面加载时禁用或启用带有复选框的<select>元素?

Paw*_*uda 5 html javascript jquery

我有一个简单的函数,当选中/取消选中复选框时,它会禁用/启用select元素.它运作良好.但是,一旦提交表单并且已经选中了复选框加载(在PHP的帮助下),在我单击复选框两次之前,选择不会被禁用.

<select id="worldSelect" class="select" name="world">
<input id="worldcb" type="checkbox" checked="yes" value="any" name="world">
any world 

function toggleSelection(element){
    if (this.checked) {
        $(element.data).attr('disabled', 'disabled');
    } else {
        $(element.data).removeAttr('disabled');
    }
}

$(function() {
    $('#worldcb').click('#worldSelect', toggleSelection);
});
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几件事,但到目前为止我对jQuery没有任何好处......

Jam*_*son 8

看起来你几乎就在那里.只是一些语法错误.

$("#worldcb").click(function(){
    var el = $("#worldSelect");
    if (el){
        el.removeAttr("disabled");
        if (this.checked){
            el.attr("disabled", "disabled");     
        }
    }
});        
Run Code Online (Sandbox Code Playgroud)

这是一个jsFiddle来演示.

至于在页面回发时保留禁用状态,您只需在加载页面时运行一些逻辑.

if ($("#worldcb").is(":checked")){
    $("#worldSelect").attr("disabled", "disabled");
}
Run Code Online (Sandbox Code Playgroud)