У меня есть следующие две коробки выберите:Как фильтровать/клонировать опции выбора с помощью jQuery?
<select id="project">
<option data-person_ids="[75,76,77]">None</option>
<option data-person_ids="[77]">Project A</option>
<option data-person_ids="[75,76]">Project B</option>
<option data-person_ids="[75]">Project C</option>
</select>
<select id="person">
<option value="75">Person A</option>
<option value="76">Person B</option>
<option value="77">Person C</option>
</select>
Как я могу фильтровать #person
варианты на основе значения, выбранного в #project
?
Это код JQuery фрагмент кода, который коллега придумал, но я не смог заставить его работать, потому что я еще новичок в JQuery:
$(function() {
var $person = $('#person');
$allPersonOptions = $person.children();
$('#project').on('change', function() {
var selected_project = $('#project').data('person_ids');
filterOptions($allPersonOptions.clone(), +selected_project).appendTo($person.empty());
});
});
function filterOptions($options, id) {
return $options.filter(function() {
return $.inArray(id, $(this).data('project_ids')) > -1
});
}
Спасибо за любую помощь в этом вопросе.
Спасибо, теперь он работает! Можете ли вы объяснить jQuery n00b, что '10' делает внутри' parseInt'? – Tintin81
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt – epascarello
Хорошо, это объясняет это очень хорошо. – Tintin81