У меня есть несколько зависимых выпадающих, которые получают из моей базы данных.
Первый выпадающий список выберет 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");
}
});
}
Работает нормально, чтобы генерировать оба выпадающих. Но когда первый выпадающий список (Select eOpp) изменился, второй выпадающий список все равно останется предыдущим значением в моем выпадающем меню. Я использую этот multiSelect для моего второго раскрывающегося списка под основами1. jquery.multiple.select.js
Например, когда я выбрал первый eOpp, результат будет таким:
Выберите eOpp: 1 Выберите предмет: Элемент 1 (А) Элемент 1 (B)
Но после того, как я изменил Выберите eOpp, это станет так:
Выберите eOpp: 2 Выберите предмет: Элемент 1 (А) Элемент 1 (B) Элемент 2 (А)
Это сохранит предыдущее значение, где ППНЗ = 1 но когда я использую php для $_POST
это, я не ценю. Я должен удалить предыдущую запись соответственно, когда я меняю Выберите eOpp
РЕДАКТИРОВАТЬ
Проблема возникает, когда реализован multiSelect.
$(function() {
$('#item').change(function() {
console.log($(this).val());
}).multipleSelect({
width: '100%'
});
});
Уничтожение и реинитализация должны работать:
$("#item").multiselect('destroy');
$("#item").multiselect();
После того, как я изменил плагин multiSelect, он хорошо работает с моим кодом.
Для получения дополнительной информации, пожалуйста, смотрите 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) {