Railsを使ったアプリケーションのフォーム内にて、選択したラジオボタンに応じてセレクトボックスの中身が変動する機能を実装しました。
しかし、通常の固定ページではうまく機能するものの、jQuery UI のDialog内ではうまく連動セレクトボックスが機能しません。
実装は以下のように記述しています。
javascript
1//モーダル 2 var ready; 3 ready = function() { 4 $(function() { 5 var wH = $(window).height(); 6 $(".open").click(function() { 7 $("#modal").dialog({ 8 modal: true, 9 }); 10 }); 11 12//ajax 13 14$(document).on('change', '#radio', function() { 15 return $.ajax({ 16 type: 'GET', 17 url: '/radios/select', 18 data: { 19 id: $(this).val() 20 } 21 }).done(function(data) { 22 return $('#select').html(data); 23 }); 24}); 25
ruby
1#_select.html.erb 2<%= collection_select :user , :aaa, Job.where("id = ?", id ),:id,:id %> 3#controller 4def select 5 if request.xhr? 6 render partial: 'shared/select', locals: { id: params[:id]} 7 end 8end
上記の記述によって、Dialogと連動セレクトボックスはそれぞれ単体では動作します。
.openをクリックすれば#modalはきちんと開きます。
#radioのいずれかを選択すれば、選択した#radioのvalueに応じたセレクトボックスが表示されます。
しかし、#modal内に#radioと#selectを設置すると、うまく動作しません。
アプリケーションのログを見ていると、ajax通信自体はなされているようです。
パラメータをきちんと送信し、Jobモデルからidが#radioのvalueであるものを検索まではしており、_select.html.erbを表示もさせているようです。
しかし、画面上では何も変化が起きません。
jQuery UI のDialog内ではAjaxがうまく動かないのでしょうか。
解決策があれば教えていただきたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。