如何在Rails中正确地使用Ajax并处理部分的表单错误

How to properly do Ajax and handle form errors for a partial in Rails?

本文关键字:处理部 错误 表单 Ajax Rails 正确地      更新时间:2023-09-26

我在侧边栏有一个时事通讯注册框:

--------------------------------
|                   |          |
|                   |          |
|                   |__________|
|                   |NEWSLETTER|
|                   |          |
|                   |          |
--------------------------------

我创建了一个具有以下操作的newsletter tter_controller:

class SubscribersController < ApplicationController
  def create
    @subscriber = Subscriber.new(params[:subscriber])
  end
end

我对rails中的一些事情感到困惑:

1。如何编写的形式与rails帮助,将张贴到这作为一个AJAX请求?

2。如果用户输入的不是有效的电子邮件或空白,我如何在表单字段旁边的时事通讯侧边栏中写出消息?

3。如果插入成功,如何将表单替换为"您已注册"消息

我是rails和jquery的新手。

1)您需要阅读有关处理表单和ajax发布的rails和jquery api。前者可以在这里找到:http://guides.rubyonrails.org/form_helpers.html后者可以在这里找到:http://api.jquery.com/jQuery.post/。这两页都有很好的例子

2)您将希望通过javascript对输入运行某种基本正则表达式(当数据从rails发布时也是如此)来验证用户输入。这里是另一篇关于这个的堆栈溢出文章:jQuery Email Regex。下面是使用它的一个例子:

var fakeEmailAddress = "a@b.com";
var emailRegex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+'.[A-Z]{2,6}$/i;
var isAnEmailAddress = fakeEmailAddress.match(emailRegex);
if (!isAnEmailAddress) {
    alert("Yo bro. What's up with that email addy? Try again");
}

3)在jquery ajax post中,您可以设置"success"函数来完成此操作。查看#1中的链接。你可能会想要给表单一个ID属性,并替换表单的html数据,你从那篇文章中检索像在以下stackoverflow问题:为什么这不起作用?Jquery ajax替换特定div中的内容