用户在下拉框中选择项目时是否有特定事件?我正在创建一个使用多个下拉框的相当大的表单。在加载时,除第一个选项外的所有选项均被禁用,因为用户选择了第一个选项,第二个框中的选项将使用AJAX更改,而我想删除禁用的属性。

$('#site_id').on('change', function(event) {
    $('#access_type_id').removeAttr('disabled');
});


我遇到的麻烦是,当下拉菜单中的选项更改之后,在我实际希望它们启用之前,启用了以下下拉框时,似乎会触发.change()。用户在上一个下拉列表中进行选择后,是否可以使用其他事件代替更改以仅“启用”表单字段?

更新

通过完全不使用change事件并将我的removeAttr放在AJAX调用的成功部分中,我设法解决了这一问题。下面是一个示例。这使我能够在填充其选项时启用“下一个”下拉菜单。

$('#access_speed_id').on('select2-blur', function(event){
    $.ajax({
        async: true,
        data: $('#access_speed_id').serialize(),
        dataType: 'html',
        success: function(data, textStatus) {
            $('#cdr_id').removeAttr('disabled');
            $('#cdr_id').html(data);
        },
        type: 'post',
        url: '/services/specificCdrs'
    });
});

最佳答案

尝试以下代码:

<select id="drop1">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<select id="drop2"></select>


jQuery的

$(document).ready(function(){
$("#drop2").attr("disabled", true);
$("#drop1").change(function(){
    $("#drop2").attr("disabled", false);
    //Put your ajax code here and bind like below code
    $("#drop2").append(new Option("option text", "value"));
    $("#drop2").append(new Option("xxx","1"));
});
});


演示:http://jsfiddle.net/J5kmz/

关于javascript - jQuery下拉选择事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17966286/

10-12 12:35
查看更多