2009-09-03 85 views
0

我想弄清楚如何使用RJS在两个字段之间交换...我知道如何替换值,但我似乎无法弄清楚如何读取它。rails 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

回答

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;'%> 
+0

啊,太好了。那样做了。或者差不多,这个想法是正确的,但由于某种原因,这些工作都没有成功,我不得不稍微修改它。谢谢! – holden 2009-09-03 22:36:39

0

我不知道很多关于原型或RJS,但是快速浏览一下原型API显示getValue()。我认为这与page[:currency_to]有关,它返回一个原型元素,而不是DOM元素。

也许尝试与

to_value = page[:currency_to].getValue() 

更换

to_value = page[:currency_to].value 

你可以使用你的RJS文件想要的任何JavaScript的?我的猜测是否定的,因为它是Ruby'呈现'Javascript。

您认为链接到的Rails API部分有些误导。他们似乎没有提到一个实际的“价值”,他们只是使用价值作为传递给该块的名称。

+0

是啊...不,它似乎并没有工作。它很容易设定事情并使事情发生,但阅读事情似乎很困难。我似乎无法找到任何示例。 – holden 2009-09-03 21:12:26

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;'%>