2011-04-16 68 views
0

我正在使用Rails 3,我正在嘗試做的事情是將自動完成從另一個字段的值,我將與來自自動填充字段的輸入一起使用進行過濾。在ERB中使用JQuery獲取文本字段的值

我發現我可以傳遞參數與自動完成路徑:

<%= rif.autocomplete_field :readable_qty , recipes_autocomplete_weight_conversion_description_path + '?ingredient=' + $(this).attr(name), :'data-delimiter' => "\s" , 
       :value => @recipe.ingredients[i].readable_qty, :width=>30, :size=>20 %> 

在這裏,我嘗試使用$(本).attr(名稱),以獲得從其他文本的當前文本這給了我錯誤的領域。有誰知道如何使這項工作?

回答

0

看起來你的理解存在差距。我不是一個Rails用戶,但我很確定<%...%>中的內容在生成頁面以返回到瀏覽器時在服務器上進行評估。這意味着你在那裏使用的任何表達式必須被rails理解,所以把jquery表達式放在那裏是行不通的。

另一方面,由於某些瀏覽器事件(例如用戶單擊按鈕),瀏覽器會評估JQuery表達式。看起來你試圖做的是捕獲瀏覽器信息,然後讓它由服務器執行。這需要一個獲取或發佈到服務器,導致服務器重新生成頁面內容或執行一些操作(根據您的代碼之間的<%...%>我這樣做是這樣的:

$('#ingredient').click(function (e) { 
    var postParams = {}; 
    postParams['ingredient'] = $(this).attr(name); 
    $.post('myPage', 
    postParams, 
... 
}); 

這是行不通的代碼。我只是想給你的想法。

然後在你的網頁代碼,你拉出來參數的要求,而不是試圖用一個jQuery的表達。

希望這會有所幫助。