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 外部)上显示这个变量:

&lt;p&gt;Spinner has a value of &lt;span id="slider-value"&gt;&lt;/span&gt;&lt;/p&gt;

但是我的问题是,我如何在以下按钮上使用此值:

&lt;%= link_to "My Button", :controller =&gt; "my_controller", :action =&gt; "my_action", :value =&gt; **slider_value_from_js** %&gt;

我阅读并了解 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 - 使用脚本变量作为按钮值的主要内容,如果未能解决你的问题,请参考以下文章

在rails中重用相同的脚本

在shell脚本中将变量的值作为命令行参数传给程序

如何在bash脚本中传递变量的双引号值作为curl命令的参数?

如何使用 Rails 代码/将变量传递给 .coffee javascript 文件?

预编译咖啡脚本文件(Rails 4)

rails 4 justifiedGallery 脚本仅加载带有图像的最新帖子