在 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 on Rails 中使用 fork 创建并行进程
何时在 Ruby on Rails 中使用 memoization