使用多个ajax函数

时间:2013-12-28 11:18:29

标签: javascript jquery ajax

我试图在"完成使用其他功能:" JQuery ajax," selectOptionSort"功能但不起作用。怎么了?

        $('#tipos').change(function(){ 
            $("#marcas > option").remove(); 
            $("#marcas").prepend('<option>-- Selecione a Marca --</option>');
            $("#marcas").prepend('<option>-- Adicionar --</option>');
            $("#modelos > option").html("<option selected=\"selected\" value=\"#\">-- Selecione o Modelo --</option>");
            var tipo = $('#tipos').val(); 

$.ajax({
    type: "POST",
    url: BASE+"admin/getMarcas/"+tipo, 

    success: function(marcas)
    {
        $.each(marcas,function(id,marca) 
        {
            var opt = $('<option />'); 
            opt.val(id);
            opt.text(marca);
            $('#marcas').append(opt); 
        });

    },
    complete: function(){

        $("#marcas").selectOptionSort({ //This works fine !
            orderBy: "text",
            sort: "asc"
        });
        //These two below doesn't work !
        $("#marcas").append('<option>-- Teste Adicionar --</option>');
        console.log("test");
   }        

    });
});

注意:我已从https://github.com/yadhi/jquery-select-option-sort

下载了selectOptionSort

4 个答案:

答案 0 :(得分:0)

在您的完整函数中选择另一个选项框后,初始化selectOptionSort:

$("#marcas").selectOptionSort(
    { //This works fine !
        orderBy: "text",
        sort: "asc"
    });
$("#marcas").append('<option>-- Teste Adicionar --</option>');
 $("#marcas").selectOptionSort(//reinitialize the selectOptionSort after appending
    { //This works fine !
        orderBy: "text",
        sort: "asc"
    });
console.log("test");

在TEXT DESC下查看here以获取实例

答案 1 :(得分:0)

也许这对你有用,因为我经常使用这种语法:

 $("#marcas").append('<option>-- Teste Adicionar --</option>');

到此:

 $('<option>-- Teste Adicionar --</option>').appendTo("#marcas");

答案 2 :(得分:0)

你为什么不在一次回调中进行所有操作?

$.ajax({
    type: "POST",
    url: BASE + "admin/getMarcas/" + tipo,
    success: function (marcas) {
        $.each(marcas, function (id, marca) {
            var opt = $('<option />');
            opt.val(id);
            opt.text(marca);
            $('#marcas').append(opt);
        });
        /* is known all options are there, can sort now*/

        $("#marcas").selectOptionSort({ 
            orderBy: "text",
            sort: "asc"
        });
        /* why append after sort?*/
        $("#marcas").append('<option>-- Teste Adicionar --</option>');
        console.log("test");
    }
});

答案 3 :(得分:0)

每次追加后,您必须重新初始化selectOptionSort