2011-04-16 33 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的表达。

希望这会有所帮助。