表单-6ren">
gpt4 book ai didi

jquery - 使用 jquery 在 ruby​​ on Rails 中进行动态选择

转载 作者:行者123 更新时间:2023-12-01 00:53:00 26 4
gpt4 key购买 nike

我正在尝试在以下代码中实现动态选择。我有产品,产品有很多批号。一旦我选择产品关联批处理,则不应显示。表格详情如下。

<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)时,我发现它显示为空。谁能指出我正确的方向吗?还有其他方法可以完成我的任务吗?预先感谢:)

最佳答案

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='" + parent + "']").html()
if (options) {
jQuery('.batch').html(options);
return jQuery('.batch').parent().show();
} else {
jQuery('.batch').empty();
}
});
});

这对你有什么魔力吗?

对 Controller 进行 ajax 调用并返回选项集,然后用返回的选项填充批处理可能会更干净。

类似的东西

var data = {
product_id: jQuery('.prod :selected').attr("data-id")
}
jQuery.ajax({
url: controller/get_batch,
type: 'GET',
dataType: 'script',
data: data
});

在你放置的地方使用 get_batch.js

jQuery('.batch').html(<%= escape_javascript(render :partial => "select_box_for_batch") %>);

代码不完整,您仍然需要向产品选择和其他内容添加 ID,但我想您会明白的。

编辑:我做了一个repository举个简单的例子

关于jquery - 使用 jquery 在 ruby​​ on Rails 中进行动态选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11203999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com