在 Ruby on Rails 中使用 Jquery 为输入字段赋值

Posted

技术标签:

【中文标题】在 Ruby on Rails 中使用 Jquery 为输入字段赋值【英文标题】:Give input field a value with Jquery in Ruby on Rails 【发布时间】:2018-11-18 12:59:12 【问题描述】:

我想给一组输入字段一个值。 事先并不清楚要填写多少个输入字段,但是它们都具有相同的类

当我像这样调用第一个输入字段的 id 时,它可以工作:

$('#order_order_articles_attributes_0_workload', row).val((price / 125).toFixed(2))

当我这样调用类时,它不起作用:

$('td.input.workload', row).val((price / 125).toFixed(2))

haml 代码如下所示:

%td.input.workload= order_article_f.input :workload, value: "0", label: false, input_html:  class: 'article_workload' 

我怎样才能让这个在课堂上发挥作用?

【问题讨论】:

row 是什么?在不知道您查询的上下文的情况下无法提供帮助。 (虽然我总是会使用$(row).find(...)row 是 jQuery 选择结果吗? 行 = $(this).parents("tr:first") 它在这个方法中:$(input).on "change", -> val 不是用于表单域吗?你在表格单元格上调用val,不是吗?如果在单元格内的输入元素上调用呢? 【参考方案1】:

下面的代码没有拾取输入字段:

$('td.input.workload', row).val((price / 125).toFixed(2))

此规则试图在具有此类“输入工作负载”的 td 元素上设置一个值。

<table><tr><td class="input workload">is trying to set value here</td></tr></table>

我用一个例子创建了一个小提琴来为所有输入设置值。

https://jsfiddle.net/tjecuh3m/

希望我能帮上忙。

【讨论】:

我不得不这样称呼它:'td.workload input' 而不是:'td.input.workload' 谢谢! 很高兴为您提供帮助

以上是关于在 Ruby on Rails 中使用 Jquery 为输入字段赋值的主要内容,如果未能解决你的问题,请参考以下文章

如何注销 Facebook - 在 Rails 应用程序中使用代码(Ruby on Rails Omniauth)

ruby 在Ruby on Rails中阻止别名

在 Ruby on Rails 中使用 fork 创建并行进程

何时在 Ruby on Rails 中使用 memoization

在 Ruby on Rails 上使用 javascript 注入 ruby

在 ruby​​ on rails 中使用连接表