在边栏中动态选择项目
Selecting item dynamically in rails
我正在尝试使用rails和jquery在这里进行动态选择。 代码如下
<div class = "line_items">
<%- calc = Hash[Item.all.map{|p| [p.id, p.quantity]}].to_json %>
<div class = "item"><%= f.collection_select :item_id,Item.all,:id,:title, :prompt => "Select a Item", input_html: {data:{calc: calc} %></div>
<div class ="quantity"> <%= f.text_field :quantity %></div>
/*rest of code*/
</div>
视图的JavaScript如下
jQuery(document).ready(function(){
jQuery('.item').bind('change',function() {
var selectElement = jQuery(this);
var itemSelected = jQuery('.item:selected').val();
var wrapperDivElement = selectElement.parent(".line_items");
var quantity= eval(selectElement.data("calc"))[itemSelected];
jQuery(".quantity", wrapperDivElement).val(quantity);
});
});
当我更改项目时,出现以下错误 eval(selectElement.data("calc"))[itemSelected] is undefined
在萤火虫中。谁能指出我哪里出错了?还有更好的方法来获取数量。我觉得我正在做的方法很粗糙。任何指导都会有所帮助。提前谢谢。
jQuery(document).ready(function(){
jQuery('.item select').bind('change',function() {
var selectElement = jQuery(this);
var itemSelected = selectElement.val();
var wrapperDivElement = selectElement.parents(".line_items");
var quantity= eval(selectElement.data("calc"))[itemSelected];
jQuery(".quantity input", wrapperDivElement).val(quantity);
});
});
我猜没有检测到itemSelected的值,因此出现了错误。 上面重新定义的代码应该可以工作。但我强烈建议你不要获得这样的数据。最好执行 JSON 调用或 Ajax 调用以从控制器获取相关数据。并在代码中使用parents
而不是parent
:)
Ik 认为您混淆了按索引引用和按 ID 引用。我不是 Javascript 向导,但你用 .然后,您可以在更改事件中获得"val"值。它包含一个整数,但这不是索引。
然后你在 Javascript 中请求带有索引 val 的项目,而不是值为 val 的项目。也许javascript无法区分它们,因为两者都需要一个Int...
是这一行:
var quantity= eval(selectElement.data("calc"))[itemSelected];
相关文章:
- 在边栏中动态选择项目
- 如果选择了其他选择项目,则隐藏选择项目
- 在 for 循环中选择项目
- 使用ajax/javascript选择项目并将其添加回mysql
- 使用自动完成功能未正确选择项目
- 从laravel 5中的下拉框中选择项目时,应更改隐藏的输入值
- AngularJS下拉列表在选择项目后丢失内容
- 如何从集合中随机选择项目
- 如何在选择项目时使用 ajax 将数据提取到输入字段中
- 检查是否未从下拉列表中选择项目
- 如何使用 jquery 在多组列表框中选择项目
- 选择项目时,kendoListView 更改事件会触发两次
- 无法使用 jQuery .select2 选择项目
- 用于使用 Tab 键选择项目的事件
- 在下拉框中选择项目时更改文本框值
- Jquery - 按 ID 选择项目不起作用
- 使用哈希标记从下拉列表中预先选择项目
- 从下拉列表中选择项目后,显示新选项并显示文本
- 选择项目并一次显示n篇文章
- 有效的javascript算法,用于从数组中选择项目,其中每个条目具有不同的权重