對不起,我不能得到一個更好的標題給我的問題,但希望我的解釋會給你們一個更好的想法發生了什麼?顯示不同的控制取決於軌道收集選擇(選擇)項目
我一個模型Airport
及其他三個車型West
East
和South
那些無論如何也不能只Airport
模型相關需要一些類似這樣的表格顯示了其他領域。
<%= form_for(@airport) do %>
<%= f.collection_select(:airport_name, AirPortManager.all, etc...) %>
//AirPortManager is a collection of available airports
<div class="west-airports" style="display:none;">
<%= f.collection_select(:airline_name, WestAirlineManager.all, ....) %>
</div>
<div class="east-airports" style="display: none;">
<%= f.collection_select(:airline_name, EastAirlineManager.all, ....) %>
</div>
<div class="south-airports" style="display: none;">
<%= f.collection_select(:airline_name, EastAirlineManager.all, ....) %>
</div>
<% end %>
機場模型validates :airline_name, :presence => true
。現在的問題是與
我的JavaScript。如果用戶在AirPortManager.all
中選擇機場西,則應該顯示west-airports
div`等等。但是我的驗證方法airport一直在爲:airline_name拋出一個必需的字段錯誤,如果不是,它保留了先前選擇的值。我如何將可見的div值傳遞給機場參數,或者如果我選擇一個空值,則以前的值不應保持不變。下面是我的JavaScript,希望我的問題是有道理的。
<script type="text/javascript">
$(document).ready(function() {
$("#aiport_manager_aiport_name").change(function(){
var value = this.value;
if (value == "West") {
$('.west-aiports').show();
$('.east-airports').attr("disabled", true);
$('.east-airports').hide();
$('.south-airports').attr("disabled", true);
$('.south-airports').hide();
}
else if (value == "East") {
$('.east-airports').show();
$('.west-aports').hide();
$('.west-airports').attr("disabled", true);
$('.south-airports').hide();
$('.south-airports').attr("disabled", true);
}
else if (value == "South") {
$('.south-aiports').show();
$('.west-airports').hide();
$('.west-airports').attr("disabled", true);
$('.east-airports').hide();
$('.east-airports').attr("disabled", true);
}
});
});
</script>
我嘗試在各自的div禁用其他collection_selects,但仍然得到了驗證錯誤或得到一個持久的價值。