Javascript 如何在Rails中正确地执行Ajax并处理部分应用程序的表单错误?

Javascript 如何在Rails中正确地执行Ajax并处理部分应用程序的表单错误?,javascript,jquery,ruby-on-rails,ruby-on-rails-3.1,Javascript,Jquery,Ruby On Rails,Ruby On Rails 3.1,我在侧边栏中有一个新闻稿注册框,如下所示: -------------------------------- | | | | | | | |__________| | |NEWSLETTER| | | | | |

我在侧边栏中有一个新闻稿注册框,如下所示:

--------------------------------
|                   |          |
|                   |          |
|                   |__________|
|                   |NEWSLETTER|
|                   |          |
|                   |          |
--------------------------------
我已经创建了一个时事通讯\u controller,并执行以下操作:

class SubscribersController < ApplicationController
  def create
    @subscriber = Subscriber.new(params[:subscriber])
  end
end
class SubscribersController
我对rails中的一些事情感到困惑:

1。如何使用rails助手编写表单,并将其作为AJAX请求发布到该表单?

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

3。如果插入成功,我如何用“您已注册”消息替换表单。

我对rails和jquery都是新手。

1)您需要阅读rails和jquery API中有关处理表单和执行ajax帖子的内容。前者可在此处找到: 后者可在此处找到:。这两页上都有很好的例子

2) 您需要通过javascript(以及从rails发布数据时)在输入上运行某种基本的正则表达式来验证用户输入。下面是另一篇关于此的堆栈溢出帖子:。下面是一个使用它的示例:

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) 在jqueryajax帖子中,您可以设置“success”函数来实现这一点。检查#1中的链接。您可能希望给表单一个ID属性,并用从该帖子中检索到的html数据替换表单,如下面的问题所示: