0

我试图弄清楚如何使用 RJS 在两个字段之间进行交换......我知道如何替换这些值,但我似乎无法弄清楚如何阅读它。

不能通过 RJS 读取值吗?只能换?

<%= link_to_function "Swap" do |page| 
            #to_value = page[:currency_to].value
            page[:currency_from].value = to_value
            page[:currency_to].value = "test"
        end %>

http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper/JavaScriptGenerator/GeneratorMethods.html#M001664

4

3 回答 3

1

我测试了以下两个。

<%= link_to_function "Swap", 'var tmp_frm = $("#currency_from").val();
                              var tmp_to = $("#currency_to").val();
                              $("#currency_from").val(tmp_to);
                              $("#currency_to").val(tmp_frm);'%>

或者更好

<%= link_to_function "Swap", 'var tmp_frm = $("#currency_from").val();
                              $("#currency_from").val($("#currency_to").val());
                              $("#currency_to").val(tmp_frm);'%>

根据您的 html,您可能需要删除磅符号

<%= link_to_function "Swap", 'var tmp_frm = $("currency_from").value;
                                      var tmp_to = $("currency_to").value;
                                      $("currency_from").value = tmp_to;
                                      $("currency_to").value = tmp_frm;'%>
于 2009-09-03T22:15:33.513 回答
0

我对原型或 rjs 了解不多,但快速查看原型 API 会显示getValue()。我认为这与page[:currency_to]返回原型元素有关,而不仅仅是 DOM 元素。

也许尝试更换

to_value = page[:currency_to].value

to_value = page[:currency_to].getValue()

你可以在 rjs 文件中使用任何你想要的 javascript 吗?我的猜测是否定的,因为它是 Ruby “渲染” Javascript。

我认为您链接到的 Rails API 部分有点误导。它们似乎不是指实际的“值”,它们只是使用值作为要传递给块的名称。

于 2009-09-03T20:50:41.500 回答
0
<%= link_to_function "Swap", 'var tmp_frm = $("currency_from").value;
                                      var tmp_to = $("currency_to").value;
                                      $("currency_from").value = tmp_to;
                                      $("currency_to").value = tmp_frm;'%>
于 2009-09-03T22:36:59.453 回答