使用 jQuery 提交 Rails 表单



我正在尝试使用jQuery和Ajax提交Rails表单,但它不起作用,我不确定为什么。我意识到使用 AJAX 做事remote: true,但这对我来说还不够,因为我想在单击提交按钮时执行其他 jQuery 操作,并提供有关操作状态的良好反馈,即成功和失败。这是我目前有格式的代码:

<%= form_for @mail, id: "mail-form", url: subscription_mail_create_recipients_path(@mail) do |f| %>
    <strong>Choose the users you want to target..</strong><br/>
    <%= f.check_box :target_users %> Users                          
    <div class="actions">
    <a id="save-config" class="btn btn-primary purple-button">Save configuration</a>
    </div>
<% end %>

jQuery:

    $('#save-config').click(function(){
        $('#mail-form').submit(function() {
            var valuesToSubmit = $(this).serialize();
            console.log(valueToSubmit);
                            $.ajax({
                                url: $(this).attr('action'), //sumbits it to the given url of the form
                                data: valuesToSubmit,
                                dataType: "JSON" // you want a difference between normal and ajax-calls, and json is standard
                            }).success(function(json){
                                //act on result.
                            });
            alert("method failed");
                            return false; // prevents normal behaviour
        });
    });

我正在尝试解决这里的示例以 ajax 方式在 rails 3 中提交表单(使用 jQuery)

我没有提交按钮,这是它不起作用的原因吗?任何帮助将不胜感激。

您的代码确实定义了提交表单时要执行的函数。 它每次单击按钮都会执行此操作。但是您想要的是每次点击都提交表单的内容。因此,请尝试以下操作:

$('#save-config').click(function(){
  var valuesToSubmit = $('#mail-form').serialize();
  console.log(valueToSubmit);
  $.ajax({
    url: $('#mail-form').attr('action'), //sumbits it to the given url of the form
    data: valuesToSubmit,
    dataType: "JSON" // you want a difference between normal and ajax-calls, and json is standard
  }).success(function(json){
    //act on result.
  });
  return false; // prevents normal behaviour
});

最新更新