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数据替换表单,如下面的问题所示: