현재 각 건물별로 그룹화 된 다양한 룸이있는 다중 선택 상자를 필터링하는 건물의 드롭 다운 목록이 있습니다.다중 선택 상자를 필터링 한 후 optgroup 레이블을 유지하려면 어떻게해야합니까?
드롭 다운을 통해 다중 선택 상자를 필터링 할 때 다중 선택 상자가 올바르게 필터링되지만 사용자에게 객실 구성에 대한 정보를 제공하는 optgroup 레이블이 제거된다는 점을 제외하면 모든 기능이 뛰어납니다.
EX : ... 나는 내 드롭 다운
<optgroup label="Accounting Library">
<option value="143">105A</option>
<option value="144">105B</option>
</optgroup>
<optgroup label="Ahmanson Center">
<option value="721">fad</option>
<option value="737">zzz</option>
</optgroup>
그때 얻을 통해 회계 라이브러리를 선택 말할 수 있습니다 난을 유지하고 싶은 것을 제외하고, 올바른
<option value="143">105A</option>
<option value="144">105B</option>
UI 용도를위한 optgroup 레이블.
아무도 내 자바 스크립트로 이것을 할 수있는 방법을 알고 있습니까?
JAVASCRIPT
$(function() {
var rooms = $('#key_room_ids').html();
$("#key_building_name").on("change",function() {
var building, options;
building = $('#key_building_name :selected').text();
options = $(rooms).filter("optgroup[label='" + building + "']").html();
if (options) {
###This doesn't return the values with the optgroup label
return $('#key_room_ids').html(options);
} else {
return $('#key_room_ids').empty();
}
});
});
FORM
<%= simple_form_for(@key, html: { 'data-parsley-validate' => '' }) do |f| %>
###Dropdown Filter
<%= f.collection_select :building_name, Building.order('name ASC'), :id, :name, {:include_blank => '- Please Select A Building To Filter The List Below -'}, { class: "form-control" } %>
###Multi Select Box Grouped by Building
<%= f.grouped_collection_select :room_ids, Building.order('name ASC'), :rooms, :name, :id, :name, {include_blank: "- Please Select The Rooms This Key Works For -"}, {multiple: true, size: 10, :class => "form-control"} %>
<% end %>
코드가 처음에는 잘 작동하지만, 다시 필터링하려고하면 ... –
그래, 고칠 수 있습니다. – nnnnnn
또한 "Show All"옵션, 레일스 코드/양식에 그 값을 추가하는 방법을 정말 좋아합니다? –