【问题标题】:Rails 4 - Use Script Variable as Button ValueRails 4 - 使用脚本变量作为按钮值
【发布时间】: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 和东西的引用,但是我认为这不是问题,因为表单请求/按钮总是使用客户端输入,这正是我所需要的。

【问题讨论】:

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


    【解决方案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 中很菜鸟..
    猜你喜欢
    • 2021-12-29
    • 1970-01-01
    • 2011-03-16
    • 2019-07-21
    • 2016-03-26
    • 2016-11-21
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    相关资源
    最近更新 更多