2009-09-03 66 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;'%>