如何在触发更改时更改下拉列表的值

时间:2013-12-30 12:34:22

标签: jquery html

我希望在触发另一个下拉列表更改时更改下拉列表的值。

<select id="option">
    <option id="1">1</option>
    <option id="2">2</option>
</select>


<select id="au">
    <option id="admin">admin</option>
    <option id="user">user</option>
</select>

<input type="checkbox" id="cb">hii

如果我将第一个下拉列表option更改为1,则第二个下拉列表应更改为值为admin,并且应选中复选框,并且两者都应该禁用。

我该怎么办?

这是我尝试过的。

$("#option").change(function() {
    $("#cb").prop('checked', true);

});

2 个答案:

答案 0 :(得分:2)

您必须获取ID,而您应该使用值,但无论如何

$('#option').on('change', function() {
    var id = $('option:selected').prop('id');

    $('#admin').prop('selected', id == '1').closest('select').prop('disabled', id == '1');
    $('#cb').prop('checked', id == '1').prop('disabled', id == '1');
});

FIDDLE

正确的方法,值

ANOTHER FIDDLE

答案 1 :(得分:0)

用户属性value来分配值。

HTML:

<option value="1" id="1">1</option>
<option value="2" id="2">2</option>

<option value="admin" id="admin">admin</option>
<option value="user" id="user">user</option>

JS:

$("#option").change(function() {
    if($(this).val() == "1"){
        $("#au option[value='admin']").attr("selected","selected");
        $("#au").attr("disabled","disabled");
        $("#cb").prop("checked",true).attr("disabled","disabled");
    }
    else{
        $("#au").removeAttr("disabled");
        $("#cb").removeAttr("disabled");
    }
});

DEMO here.