表单不作为JS处理

时间:2011-09-01 23:56:54

标签: ruby-on-rails

所以我有以下rails表单,相应的控制器操作有respond_to:js,但rails继续将其作为HTML处理。不确定如何继续。有什么想法吗?

form_tag url_for(controller: 'posts', action: 'add_tag'), id: 'enter_tag', remote: true, style: 'display:none' do
  text_field_tag :tag
end

更新:删除'display:none'修复它(我的格式已经淡入。)为什么会这样?

1 个答案:

答案 0 :(得分:0)

克里斯,你在使用Rails 3.1吗?如果是这样,(我相信,我仍然在3.0.10)jQuery UJS库自动包含。如果是这种情况,它应该使用 / 数据类型请求,但我相信rails应该注意它是一个xhr请求并自动将它发送到JS响应。

快速解决方案可能是将url_for更改为url_for(controller: posts, action: 'add_tag', format: 'js'),但我相信它应该选择JS响应,即使没有它。我不喜欢这种方法,因为我不相信它会为非js用户选择你的HTML响应。

另一种解决方法可能是将format.js作为您控制器中的第一个响应格式(现在可能是HTML),但我忽略了为什么它不会将其识别为Ajax请求开始的原因与?