首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery提交Rails表单

使用jQuery提交Rails表单
EN

Stack Overflow用户
提问于 2012-11-29 22:49:28
回答 1查看 4.4K关注 0票数 3

我正在尝试使用jQuery和Ajax提交一个Rails表单,但是它不工作,我不确定为什么。我意识到有remote: true可以使用AJAX做事情,但在我的例子中这还不够,因为我想在单击提交按钮时执行其他jQuery操作,并对操作的状态(即成功和失败)提供良好的反馈。这是我目前拥有的代码,形式如下:

代码语言:javascript
复制
<%= 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:

代码语言:javascript
复制
    $('#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
        });
    });

我正在尝试完成这里的示例Submit form in rails 3 in an ajax way (with jQuery)

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

EN

回答 1

Stack Overflow用户

发布于 2012-11-29 23:46:40

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

代码语言:javascript
复制
$('#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
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13628325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档