在我的表格中,我有兩個下拉框。滑軌 - 重置選擇
<%= f.input :movie_code, input_html: { class: "ajax_select2", onchange: "$.movies.movieChanged(this)" } %>
<%= f.label :actor_name, required: true %>
<%= f.select :actor_code, choices, {}, {id: "actor_code_element", class: "select2"} %>
,當我改變我的第一個下拉值的函數movieChanged通過AJAX獲取影片的演員和重新填充第二個下拉。
movieChanged: function(element) {
var $this = $(element);
url = '/movie/' + $this.val() + '/actors/';
$.getJSON(url, null, function(data, status, xhr) {
$('#actor_code_element').empty(); //empty the list of options
$('#actor_code_element').prop("selected", false);
$.each($(data), function(index, value) {
var option = $('<option />');
option.attr('value', value.id).text(value.text);
$('#actor_code_element').append(option); //add option
});
});
}
我不能做的是在先前選擇了一個選項後重置第二個下拉列表的值。
例如:我選擇了Pulp Fiction電影,Samuel L Jackson和John Travolta出現。我選擇塞繆爾。接下來,我將電影改爲ShawShank Redemption。我重置了演員名單,但選定的演員仍然是約翰·特拉沃爾塔。我想取消選擇它,並將其設置爲null ...
我讀周圍和嘗試:
$('#actor_element').val('')
$('option', $('#category_code_element').attr('selected', false);
實在不行......
我該怎麼辦呢?
編輯:現在我意識到可能會有select2ish做事的方式。我試圖改變它的工作方式,這可能是爲什麼它沒有按預期工作... 在此先感謝。
我的意思是val('')。更新了答案。你告訴我的作品(該值在之後爲空,但該項目仍然顯示)。 – 2013-04-05 10:45:42