Rails与ajax和非ajax按钮形成

时间:2012-04-16 08:32:33

标签: ruby-on-rails ajax ruby-on-rails-3 forms ajax-on-rails

我有一个带有两个按钮的@object的form_。

当第一个按钮呈现'show action'时,第二个按钮再次呈现相同的形式。所以我希望后者是ajax处理的。

是否可以使用相同形式的非ajax按钮和ajax按钮,还是必须更改策略?

也许我需要一个带有'remote:true'的form_for,这样两个按钮都是ajax然后,我如何管理第一个按钮来呈现正确的'show view'?

或许唯一真正的解决方案是有两种不同的形式?

谢谢。

2 个答案:

答案 0 :(得分:2)

您可以尝试挂钩onClick按钮事件,删除data-remote="true"属性,提交表单并再次添加data-remote="true"。我不知道这是否真的是最好的方式,但它应该有用。

function sendWithoutAjax() {
  $('my_form_id').removeAttr("data-remote");
  $('my_form_id').submit();
  $('my_form_id').data( "remote", "true" );
}

像这样......

答案 1 :(得分:0)

我认为最简单的方法是使用jQuery Form插件。然后你可以创建表单来提交你的非ajax动作,ajax功能将附加到提交按钮本身:

$(".ajax_submit_button").click(function() {
  $(this).closest("form").ajaxSubmit({
    // options go here
    ...
  });
  return false;
});