考慮我有兩種模式:Employer
和Jobs
。如何在點擊軌道中的提交按鈕時在重定向下一頁之前顯示模式?
僱主已創建一個帳戶來發布工作並填寫他的電話號碼。當他填寫一份新工作,然後點擊發布工作按鈕(提交按鈕)。我想檢查他輸入的手機號碼是否已經過驗證,如果不是,我想要一個模式或燈箱彈出,我要求他錯過某個號碼的電話,只要他做了那個頁面被重定向到作業索引頁面。如果他想取消確認,他可以做到這一點,但該頁面將被重定向到任何地方,它仍然會在表單頁面上。
但我不知道該怎麼做。請幫忙!
考慮我有兩種模式:Employer
和Jobs
。如何在點擊軌道中的提交按鈕時在重定向下一頁之前顯示模式?
僱主已創建一個帳戶來發布工作並填寫他的電話號碼。當他填寫一份新工作,然後點擊發布工作按鈕(提交按鈕)。我想檢查他輸入的手機號碼是否已經過驗證,如果不是,我想要一個模式或燈箱彈出,我要求他錯過某個號碼的電話,只要他做了那個頁面被重定向到作業索引頁面。如果他想取消確認,他可以做到這一點,但該頁面將被重定向到任何地方,它仍然會在表單頁面上。
但我不知道該怎麼做。請幫忙!
我要檢查是否是他進入已經過驗證的手機號碼或不
我會推薦這在模型級別,然後你就可以通過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);
});
您可以觸發表單標籤上的onsubmit
事件。
調用方法onsubmit
的形式並從該方法中激發ajax。檢查手機號碼是否經過驗證,並返回true
或false
。然後從Ajax成功函數檢查值(true/false),如果該值爲false,則顯示模態並返回false,否則返回true。
我們不知道如何去幫助你除非你顯示一些代碼! –
尋找方式是處理'onsubmit'事件的形式。你到目前爲止嘗試了什麼?沒有相關的代碼很難提供幫助。 – kosmos