Rails 4 - 使用脚本变量作为按钮值
Posted
技术标签:
【中文标题】Rails 4 - 使用脚本变量作为按钮值【英文标题】:Rails 4 - Use Script Variable as Button Value 【发布时间】:2016-07-26 19:20:31 【问题描述】:我在我的 ruby erb 代码中使用了一个 jquery ui 滑块 (http://jqueryui.com/slider/)。
$( "#slider" ).slider(
range:'min',
value:<%= @last_change %>,
min: 0.01,
max: 98,
step: 0.01,
slide: function( event, ui )
$( "#slider-value" ).html( ui.value );
);
$( "#slider-value" ).html( $('#slider').slider('value') );
挑战是使用此更新的值放置一个按钮,并使用此脚本变量#slider-value。 目前,我可以在我的 erb(JS 外部)上显示这个变量:
<p>Spinner has a value of <span id="slider-value"></span></p>
但是我的问题是,我如何在以下按钮上使用此值:
<%= link_to "My Button", :controller => "my_controller", :action => "my_action", :value => **slider_value_from_js** %>
我阅读并了解 js 是客户端,服务器无法处理客户端的事情 => 很多使用复杂的 ajax、partials 和东西的引用,但是我认为这不是问题,因为表单请求/按钮总是使用客户端输入,这正是我所需要的。
【问题讨论】:
【参考方案1】:实际上对这个任务使用form
看起来是一个更合适的解决方案 - 将按钮设为submit
元素并将滑块值存储在隐藏字段中。
但在您当前的代码中,您可能只是动态更改链接的href
属性(a
元素)。
<%= link_to "My Button", controller: "my_controller", action: "my_action", value:'value_to_be_replaced' , class:'theButtonClass'%>
还有:
$('a.theButtonClass').attr('href',
$('a.theButtonClass').attr('href').replace(
encodeURIComponent('value_to_be_replaced'),
encodeURIComponent('your_new_value_here')
)
);
【讨论】:
而不是仅替换 value_to_be_replaced - 这仅适用于第一次替换(微调器移动),即使在第一次更新之后,我如何才能使其更新“值”上的任何值?这是有效的,所以我已经将回复标记为解决方案! @ace 您可以在第一次分配之前将链接模板保存在某处 我不明白我是怎么做到的,如果有人能提供帮助,我将不胜感激! @ace 例如 -$(function() $('a.theButtonClass').data('linktemplate', $('a.theButtonClass').attr('href')); );
然后使用 $('a.theButtonClass').data('linktemplate')
作为模板
花了上一小时试图调整您的解决方案(针对单个更改)但没有成功,如果您可以使用它编辑以前的解决方案,那就太好了,因为我无法做到。对不起,我在 js 中很菜鸟..以上是关于Rails 4 - 使用脚本变量作为按钮值的主要内容,如果未能解决你的问题,请参考以下文章
如何在bash脚本中传递变量的双引号值作为curl命令的参数?