2

我正在尝试调用远程方法来通过 ajax/js 更新页面内容。要么我太累了,要么 haml 没有正确解析以下代码以通过原型发送查询字段的值。有任何想法吗?

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

多谢!

4

2 回答 2

1

你试过一个

= form_remote_tag

代替

- form_remote_tag

我自己是 HAML 的新手,但我的印象是您需要实际生成表单标签,而不仅仅是执行......

于 2010-02-22T02:10:58.547 回答
1

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

- form_remote_tag({ :url => {:controller => "search", :action => "line"}, :with => "'query=' + $('query').value" }) do

如果这不起作用,请调试问题:查看生成的 html。具有 id 的文本字段query是页面中具有该 id 的唯一元素吗?js代码是否正确?使用 Firebug 控制台确保$('query').value返回您在文本字段中输入的任何内容。

还是卡住了?将您生成的 html 添加到您的问题中,以便我们提供更好的帮助。

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

%input{:type => 'text', :id => 'query', :name => 'query'}
于 2010-02-22T02:52:44.280 回答