Ruby on rails haml和没有javascript?(rails:form_remote_标记和:带参数)

Ruby on rails haml和没有javascript?(rails:form_remote_标记和:带参数),ruby-on-rails,ajax,prototype,haml,Ruby On Rails,Ajax,Prototype,Haml,我试图调用一个远程方法,通过ajax/js更新页面内容。 要么我已经太累了,要么haml没有正确解析以下代码,以便通过prototype发送查询字段的值。有什么想法吗 - form_remote_tag(:url => {:controller => "search", :action => "line"},:with => "'query=' + $('query').value" ) do %input{:type => 'text', :id =>

我试图调用一个远程方法,通过ajax/js更新页面内容。 要么我已经太累了,要么haml没有正确解析以下代码,以便通过prototype发送查询字段的值。有什么想法吗

- form_remote_tag(:url => {:controller => "search", :action => "line"},:with => "'query=' + $('query').value" ) do
  %input{:type => 'text', :id => 'query'}
  %input{:type => 'submit', :value => 'Search'}
非常感谢

t

你试过吗

= form_remote_tag
而不是

- form_remote_tag

我本人是HAML新手,但我的印象是,您需要实际生成表单标记,而不仅仅是执行…

尝试将
:和
作为选项哈希的一部分传递

- form_remote_tag({ :url => {:controller => "search", :action => "line"}, :with => "'query=' + $('query').value" }) do
如果这不起作用,调试问题:查看生成的html。id为
query
的文本字段是页面中唯一具有该id的元素吗?js代码正确吗?使用Firebug控制台确保
$('query')。value
返回您在文本字段中输入的内容

还卡住吗?将生成的html添加到问题中,这样我们可以更好地提供帮助

编辑:您的
查询
输入标记没有
名称
属性。如果没有名称,javascript帮助程序代码在序列化表单字段时会跳过该字段……而且,您不需要
:with
代码

%input{:type => 'text', :id => 'query', :name => 'query'}

你好,乔纳森,谢谢你的回答。生成的html似乎完全忽略了“with”,请参见(这是您建议语法的输出)-我认为haml可能是问题所在。。。使用haml(2.2.17)问题不在于haml,而在于您的输入标记。查看我的编辑。非常感谢您的帮助。这确实解决了我的问题(发送参数时不带:with),但我仍然想知道如何用haml发送:with参数。谈到ruby代码,haml与erb没有什么不同。和往常一样,只要把这些参数传过去就行了。对于
form_remote_tag
,请查看文档-选项中不包含
:with
。感谢您的澄清。也谢谢你的快速回答。非常感谢。
form\u for
(以及其他一些视图帮助程序)将html直接添加到缓冲区中,因此您不需要使用
=
自己插入它。如果这样做,您将看到两个
标记。