考虑我有两个模型:Employer
和Jobs
。
雇主已经创建了一个帐户来发布工作并填写了他的电话号码。当他填写新工作并点击发布职位按钮(提交按钮)时。我想检查他输入的手机号码是否已经过验证,如果我不想弹出模态或灯箱,我会要求他拨打某个号码的未接来电,并且一旦他确实该页面被重定向到作业索引页面。如果他想取消验证,他可以这样做,但页面将被重定向到任何地方,它仍然会在表单页面上。
但我不知道该怎么做。请帮助!
答案 0 :(得分:0)
您可以在表单标记上触发onsubmit
事件。
调用表单的onsubmit
方法并从方法中激活ajax。检查控制器是否验证了手机号码,然后返回true
或false
。然后从Ajax成功函数检查值(true / false),如果值为false,则显示模态并返回false,否则返回true。
答案 1 :(得分:0)
我想检查他输入的手机号码是否已经过验证
我建议在模型级别实现此功能,然后您可以通过ajax
调用进行初始化:
#app/models/employer.rb
class Employer < ActiveRecord::Base
has_many :jobs
validates :phone_number, numericality: { only_integer: true }
end
#app/models/job.rb
class Job < ActiveRecord::Base
belongs_to :employer
end
我不知道你的后端...而且你似乎也在使用Rails 3.你肯定需要考虑更新它(考虑Rails 5 is almost out)。
这将为您提供应用程序级别的验证,这将允许您向控制器发送请求。得到Rails直接提供的回复:
#app/views/jobs/new.html.erb
<%= form_for @job, remote: true do |f| %>
<%= f.submit %>
<% end %>
#app/controllers/jobs_controller.rb
class JobsController < ApplicationController
respond_to :js, :json, :html
def new
@job = Job.new
@job.save
end
end
#app/assets/javascripts/application.js
$(document).on("ajax:error", "form#new_job", function(xhr, status, error) {
alert(xhr.responseText);
});