我在侧边栏中有一个简报注册框,如下所示:
--------------------------------
| | |
| | |
| |__________|
| |NEWSLETTER|
| | |
| | |
--------------------------------
我创建了一个newsletter_controller,其操作如下:
class SubscribersController < ApplicationController
def create
@subscriber = Subscriber.new(params[:subscriber])
end
end
我对rails中的一些事情感到困惑:
1。如何使用rails helper编写表单,将其作为AJAX请求发布到此?
2。如果用户输入的内容不是有效的电子邮件或空白,我如何在表单字段旁边的简报侧栏中写出消息?
第3。如果插入成功,如何使用“您已注册”消息替换表单。
我是rails和jquery的新手。
答案 0 :(得分:0)
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帖子中,你可以设置&#34;成功&#34;这样做的功能。检查#1中的链接。您可能希望为表单提供一个ID属性,并将表单替换为您从该帖子中检索的html数据,如下面的stackoverflow问题所示:why does this not work?? jquery ajax replace content in specific div