我有一个带有1个collection_select和2个grouped_collection_select的表单。
所有3个都以include_blank开始。当我选择第一个集合选择时,第一个grouped_collection_select(下一个选择)将自动更改。问题是第二个grouped_collection_select,下一个选择(3d选择),选项不会随之改变。仅当我重新选择第一个grouped_collection_select后,它才会更改。
表格:
<%= form_for @shop_product do |f| %>
<%= f.collection_select :category_id, @categories, :id, :title, include_blank: "Select Category" %>
<%= f.grouped_collection_select :style_id, @categories.order(:title), :styles, :title, :id, :title, include_blank: "Select Style", prompt: "Selet Style 2" %>
<%= f.grouped_collection_select :item_id, @styles.order(:title), :items, :title, :id, :title, include_blank: "Select Item" %>
...
原始文件:
jQuery(function() {
var styles;
styles = $('#shop_product_style_id').html();
console.log(styles);
return $('#shop_product_category_id').change(function() {
var category, escaped_category, options;
category = $('#shop_product_category_id :selected').text();
escaped_category = category.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1');
options = $(styles).filter("optgroup[label=" + category + "]").html();
console.log(options);
if (options) {
$('#shop_product_style_id').html(options);
return $('#shop_product_style_id').parent().show();
} else {
return $('#shop_product_style_id').empty();
}
});
});
jQuery(function() {
var items;
items = $('#shop_product_item_id').html();
console.log(items);
return $('#shop_product_style_id').change(function() {
var style, escaped_style, options;
style = $('#shop_product_style_id :selected').text();
escaped_style = style.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1');
options = $(items).filter("optgroup[label=" + style + "]").html();
console.log(options);
if (options) {
$('#shop_product_item_id').html(options);
return $('#shop_product_item_id').parent().show();
} else {
return $('#shop_product_item_id').empty();
}
});
});
型号:
**shop_product.rb**
belongs_to :category
belongs_to :style
belongs_to :item
**category.rb**
has_many :shop_products
has_many :styles
**style.rb**
has_many :shop_products
belongs_to :category
has_many :items
**item.rb**
has_many :shop_products
belongs_to :style
例如是问题所在
要更改Item,我需要选择:style_id字段,选择“ hoodies”以外的其他内容,然后重新选择“ hoodies”,然后将出现具有Item.style_id == "hoodies"
我希望item_id
的第三个选择在选择@category的同时更改style_id
。另外,如果将@categories collection_select放回“选择类别”,则要全部重置它们。
我怎么拥有它,以便所有东西都统一在一起?当style_id更改时,:item_id grouped_collection_select字段如何更改,因此我无需重新选择即可更改它?
答案 0 :(得分:0)
您可以使用trigger
功能
...
else {
return $('#shop_product_style_id').empty();
}
$('#shop_product_style_id').trigger('change')
});
这将称为$('#shop_product_style_id').change(function...