2014-04-08 52 views
0

我一直在研究如何在erb <%%>標記中使用JavaScript變量。這將通過AJAX完成(請參閱How to pass a javascript variable into a erb code in a js view?)。我對JS非常陌生,特別是AJAX新手,並且在行動中找到這樣的例子會非常棒。將JavaScript變量傳遞給erb標記

考慮所有需要的就是從JS再培訓局通過了如下簡單的場景是簡單的文本位:

HTML: <input id="example-input" type="text">

$(function() { 
    $('input#example-input').keyup(function(e) { 
    if(e.keyCode == 13){ 
     var input = $('input#example-input').val(); 
     <% puts input.upcase %> 
    } 
    } 
}); 

注意,輸入會不在erb標籤中定義,因此會引發錯誤。

回答

0

我相信你假設行<% puts input.upcase %>將在之後執行你的javascript行var input = $('input#example-input').val();之後的紅寶石代碼。如果這就是你的想法,這是不正確的。在你給出的例子中:

  • 當頁面加載時,<% puts input.upcase %>被執行。
  • <% puts input.upcase %>input紅寶石var input = $('input#example-input').val();可變
  • input的JavaScript變量

如果你有,你就服務器側設置一個變量,你可以這樣說:這在你的javascript:

var my_js_var = '<%= a_str_in_ruby %>'; 

,這將工作得很好,在JavaScript方面初始化一個變量。

但是,既然你想從客戶端(aka javascript)向服務器端請求數據(由rails controller來處理),你應該做的是提交一個ajax請求。有一個section in the rails documentation包含示例,並有一個很好的railscasts episode(如果您是付費會員)。