关于变更下拉列表的Js

时间:2016-01-19 14:38:12

标签: javascript php jquery onchange

我有一个隐藏文本输入的表单,该表单获取名为user_number_id的用户ID,并且根据值,名为departamento_drop的下拉列表会将选项过滤为retorno1。问题是,当我打开此表单以编辑其中的内容时,此下拉列表的选定选项会自动更改并更改实际选定的值。如何保持选定的值并确保过滤器能够理解并且必须遵守它?

$("#user_number_id").val(function(){
        var selecionado = $(this).val();
        jQuery.get("<?php echo base_url().'departamentos/filter_departamento/'; ?>"+selecionado,
        function(retorno1){
            var ret1 = '<option value="0">------ N/A ------</option>' + retorno1;
            var ret2 = retorno1 + '<option value="0">------ N/A ------</option>';
            if($("#departamento_drop option:selected").val() > '0'){
                jQuery("#departamento_drop").html(ret2);

            }else{
                jQuery("#departamento_drop").html(ret1);
            }
        });
});

1 个答案:

答案 0 :(得分:0)

经过9个小时的工作后,我完成了这个解决方案,但我仍然需要找到如何从retorno1删除所选的选项以免重复,并确定是否有其他更好的想法请分享。谢谢

$("#user_number_id").val(function(){
        var selecionado = $(this).val();
        jQuery.get("<?php echo base_url().'departamentos/filter_departamento/'; ?>"+selecionado,
        function(retorno1){
            var i = 0;
            var pre = retorno1 + '<option value="0">------ N/A ------</option>';

            var count = $($.parseHTML(retorno1)).filter('option').length;
            var dep_dr = $("#departamento_drop option:selected").val();

            for(i=0; i < count; i++){
            var val_drop = $($.parseHTML(retorno1)).filter("option[value*='" + i + "']").val();
            var text_drop = $($.parseHTML(retorno1)).filter("option[value*='" + i + "']").text();
                if (val_drop == dep_dr){
                      jQuery("#departamento_drop").html("<option value ='"+val_drop+"' selected='selected'>"+text_drop+"</option>"+pre);
                }else if(dep_dr == '0'){
                        jQuery("#departamento_drop").html("<option value ='"+dep_dr+"' selected='selected'>------ N/A ------</option>"+pre);
                }
            }
        }); 
});