validateエラーからviewに戻ってくると、セレクトボックスで選択していた値がクリアされてしまいます。
どうしたら値を保持したままでいられるでしょうか
他の項目はしっかり保持された状態です。
lang
1 <div class="form-group"> 2 <label for="category_id" class="col-sm-3 control-label">カテゴリ <span class="text-danger glyphicon glyphicon-asterisk"></span></label> 3 <div class="col-sm-9 col-md-3 col-lg-3"> 4 5 <%= f.select :category_id, options_for_select(categories.collect { |category| 6 [category.name, category.id.to_s] }), {:include_blank => '選択してください' }, 7 { id: 'category_select', class: 'form-control select select-default' } %> 8 9 </div> 10 </div> 11 12 13 <div class="form-group"> 14 <label for="category_id" class="col-sm-3 control-label">サブカテゴリ <span class="text-danger glyphicon glyphicon-asterisk"></span></label> 15 <div class="col-sm-9 col-md-3 col-lg-3"> 16 17 18 <%= f.select :sub_category_id, options_for_select(sub_categories.collect { |child| 19 [child.name, child.id] }), {:include_blank => '選択してください' }, 20 { id: 'sub_category_select' , class: 'form-control select select-default '} %> 21 </div> 22 </div>
lang
1$(document).on('change', '#category_select', function(evt) { 2 $.ajax({ 3 type: 'GET', 4 url: '/items/list', 5 dataType: 'json', 6 data: { 7 category_id: $("#category_select option:selected").val() 8 }, 9 error: function(jqXHR, textStatus, errorThrown) { 10 console.log("AJAX Error: " + textStatus); 11 }, 12 success: function(data, textStatus, jqXHR) { 13 $("#sub_category_select").empty(); 14 if (data.length == 0) { 15 $("#sub_category_select").hide(); 16 } else { 17 $("#sub_category_select").show(); 18 } 19 $.each(data, function(idx, sub) { 20 // console.log("" + item.code + ":" + item.name); 21 $("#sub_category_select").append('<option value="' + sub.id + '">' + sub.name + '</option>'); 22 }); 23 console.log("Dynamic country select OK!"); 24 } 25 }); 26 }); 27
あなたの回答
tips
プレビュー