次のコードで動的選択を実装しようとしています。私は製品を持っていますが、製品には多くのバッチ番号があります。製品に関連付けられたバッチを選択するとすぐに、表示されるはずがありません。フォームの詳細は以下の通りです。
<div class ="prod"><%= f.association :product, :collection => Product.in_stock %> </div><br/>
<div class ="batch"><%= f.grouped_collection_select :batch_no, Product.in_stock, :store_opening_stocks, :title, :batch_no, :batch_no, :prompt => "Select Batch"%></div>
フォームのjqueryは次のとおりです
jQuery(document).ready(function(){
var child = jQuery('.batch').html();
jQuery('.prod').change(function() {
var parent = jQuery('.prod :selected').text();
var escaped_parent = parent.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1')
var options = jQuery(child).filter("optgroup[label='#{escaped_parent}']").html()
if (options) {
jQuery('.batch').html(options);
return jQuery('.batch').parent().show();
} else {
jQuery('.batch').empty();
}
});
});
問題はoptions
nullを返すことです。これは、私が行ったときにalert(options)
nullを表示していることがわかりました。誰でも私を正しい方向に向けることができますか?? 私の仕事を達成できる他の方法はありますか?前もって感謝します :)