Rails 4 - 使用脚本变量作为按钮值

时间:2016-04-06 11:48:56

标签: javascript jquery ruby-on-rails ruby jquery-ui

我在我的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是客户端,服务器无法处理客户端事务=&gt;许多参考使用复杂的ajax,partials和stuff,但是我不认为这是问题所在,因为表单请求/按钮总是使用客户端输入,这就是我需要的东西。

1 个答案:

答案 0 :(得分: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')
  )
);