准备好选择ajax

时间:2015-12-11 15:37:38

标签: jquery ajax jquery-chosen

我尝试使用ajax调用选择的jquery:https://harvesthq.github.io/chosen/

我的HTML是:

<div class="form-group m-b logiciel">
    <label>Logiciel concerné</label>
    <select id="logiciel" name="logiciel" class="chosen">
    </select>
</div>

我的第一个脚本是:

$(document).ready(function () {
    $("#logiciel").load('ajax/ticket_add_select.ajax.php?id=' + $('#client').val());
    $("#logiciel").trigger('chosen:updated');
    $("#logiciel").chosen();
});

我的第二个是(#ticket_type是另一个选择的):

$(function () {
    $('#client').on('change', function () {
        var id = this.value;
        $("#logiciel").load('ajax/ticket_add_select.ajax.php?id=' + id);
        $("#logiciel").trigger('chosen:updated');
    });
});

当我在第一次选择时选择某些内容时,一切正常,但在第一次加载时,第二次选择为空。 Ajax没问题,我可以在日志中看到结果。

有人会做出类似的事情吗?

1 个答案:

答案 0 :(得分:2)

我猜你想要运行这些:

$("#logiciel").trigger('chosen:updated');
$("#logiciel").chosen();

完成后:

$("#logiciel").load('ajax/ticket_add_select.ajax.php?id=' + $('#client').val());

由于.load()是异步的,您必须使用.load()调用的完成处理程序才能知道它何时完成:

$(document).ready(function () {
    $("#logiciel").load('ajax/ticket_add_select.ajax.php?id=' + $('#client').val(), function() {
        $("#logiciel").trigger('chosen:updated').chosen();
    });
});

$(document).ready(function () {
    $('#client').on('change', function () {
        var id = this.value;
        $("#logiciel").load('ajax/ticket_add_select.ajax.php?id=' + id, function() {
            $("#logiciel").trigger('chosen:updated');
        });
    });
});