2015-12-22 6 views
1

У меня две модели: Employer и Jobs.Как показать модальный, прежде чем перенаправлять на следующую страницу при нажатии кнопки отправки в рельсах?

Работодатель создал учетную запись, чтобы опубликовать работу и заполнил свой номер телефона. И когда он заполняет новую работу и нажимает кнопку «Добавить задание» (кнопка «Отправить»). Я хочу проверить, подтвержден ли номер мобильного телефона, который он ввел, или нет, и если это не так, я хочу, чтобы модальный или лайтбокс всплывал, где я прошу его пропустить звонок по определенному номеру и как только он сделает эту страницу перенаправляется на страницу индекса рабочих мест. И если он хочет отменить вердикцию, он может это сделать, но страница будет перенаправлена ​​в никуда, она все равно будет на странице формы.

Но я не знаю, как это сделать. Пожалуйста помоги!

+1

Мы не знаем, как помочь вам, если вы не покажете какой-нибудь код! –

+1

Выглядит так, как обрабатывается форма 'onsubmit'. Что вы пробовали до сих пор? Трудно помочь без соответствующего кода. – kosmos

ответ

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); 
}); 
0

Вы можете вызвать событие onsubmit на теге формы.

Вызвать способ onsubmit формы и пожара ajax от метода. Проверьте, подтвержден ли номер мобильного телефона от контроллера и не возвращается true или false. Затем из функции успеха Ajax проверьте значение (true/false), и если значение false, покажите modal и верните false else, верните true.

Смежные вопросы