Rails AJAX部分没有提交表单

时间:2014-09-29 17:22:14

标签: javascript jquery ruby-on-rails ajax forms

我想创建一个有两列的页面:

|形成披萨的形式|推荐的比萨饼|

当您使用左栏中的表单创建披萨时,右侧的列开始显示您可以根据左侧自定义订购的不同类型的披萨。

我找到的所有教程都将部分重新加载到表单提交中,但是,我希望每次输入模糊或选择更改时部分重新加载。

使用Rails有一种简单的方法吗?

我想抓住未提交的@pizza对象,并在每次发生模糊事件时将其发送到部分...

2 个答案:

答案 0 :(得分:1)

<强>控制器

def my_pizza
  @pizza = Pizza.all
  respond_to do |format|
    format.js
  end
end

查看

<强> my_pizza.js.haml

$('#pizza').html('#{j render(partial: 'pizzas/piza', collection: @pizzs)}');

<强>路由

get 'pizza' => "pizza#my_pizza"

在js文件中

$(document).on('change', 'input', function() {
  // you can create your ajax call which will call the my_pizza method in which action you want to call. 
});

您可以添加ajax以及您想要调用的事件,您可以轻松调用它,当您调用相应的方法时,它将分别更新部分文件

答案 1 :(得分:0)

我认为你给了自己答案。只需将事件监听器附加到表单上的密钥表中,然后通过ajax提交。

$('form').on('blur', function() {
  // submit ajax and do something with the response here
});