2015-11-02 91 views
1

我有从我的数据库中获得的多个依赖下拉菜单。 第一个下拉列表将选择eOpp,第二个下拉列表将基于从第一个下拉列表中选定的eOpp。一旦选择了其他值,清除相关下拉菜单

//First Drop down 
<label>Select eOpp</label> 
<?php erfq_generateOppDropdown($oppID,"erfq_rfq_oppID");?> 

//Second Drop down 
<label>Select Item</label> 
<select id="item" name="item[]" multiple="multiple"> 
</select> 

这是我的ajax从第一个下拉菜单中获得价值。

function getItem(val) { 
    $.ajax({       
     type: "POST", 
     url: "get_item.php", 
     data:'erfq_rfq_oppID='+val, 
     success: function(data){      
      $("#item").empty().html(data);   
      $("#item").multipleSelect("refresh");                
     } 
    }); 
} 

它可以很好地生成这两个下拉。但是当第一个下拉菜单(选择eOpp)发生变化时,第二个下拉菜单仍然会保留我下拉菜单中的前一个值。我使用这个multiSelect为我的第二个下拉菜单下的基础1。 jquery.multiple.select.js

例如,当我选择的第一个eOpp,结果会是这样:

 
Select eOpp: 1 
Select Item: 
Item 1(A) 
Item 1(B) 

但我改变了选择eOpp后,它会变成这个样子:

 
Select eOpp: 2 
Select Item: 
Item 1(A) 
Item 1(B) 
Item 2(A) 

它会保留以前的值eOpp = 1但是当我使用php到$_POST它时,我没有任何价值。我必须相应地删除了此前的纪录时,我改变时,多选实现我的选择eOpp
编辑
出现问题。

$(function() { 
    $('#item').change(function() { 
     console.log($(this).val()); 
    }).multipleSelect({ 
     width: '100%' 
    }); 
}); 
+0

尝试$(“#item”)。html('')。html(data); – Karan

+0

嗨@Karan,感谢您的回复,但它不起作用。我已经尝试过'multiSelect(“”)和'multiSelect(“destroy”)'但仍然无法工作。 – Sollo

+0

是'select' id唯一吗? – Karan

回答

0

后,我的代码工作得很好。 欲了解更多信息,请参阅JSFiddle。函数的一些变化是:

1) function MultipleSelect($el, options) 


2) MultipleSelect.prototype = { 
    constructor : MultipleSelect, 

    init: function() { 
     var that = this, 
      html = []; 
     if (this.options.filter) { 
      html.push(
       '<div class="item-search">', 
        '<input type="text" autocomplete="off" autocorrect="off" autocapitilize="off" spellcheck="false">', 
       '</div>' 
      ); 
     } 
3) optionToHtml: function (i, elm, group, groupDisabled) { 
0

销毁和reinitalizing应该工作:我已经改变了多选插件

$("#item").multiselect('destroy'); 
$("#item").multiselect(); 
+0

它仍然是一样的。如果我销毁#item,我无法获取数据 – Sollo

相关问题