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

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

问题描述:

我有这样的侧边栏简报注册框:如何正确地处理Ajax并处理Rails中的部分表单错误?

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

我已经创建了以下行动newsletter_controller:

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

我感到困惑中轨的几件事情:

1.如何用rails helpers编写表单,并将其作为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 = "[email protected]"; 
var emailRegex = /^[A-Z0-9._%+-][email protected][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后,你可以设置“成功”功能来做到这一点。检查#1中的链接。您可能希望为表单提供一个ID属性,并用您从该帖子中检索到的html数据替换表单,如下面的计算器问题所示:why does this not work?? jquery ajax replace content in specific div