#jquery #ruby-on-rails #twitter-bootstrap #devise
#jquery #ruby-on-rails #twitter-bootstrap #разработать
Вопрос:
Я настроил свое приложение rails 4 для запуска с bootstrap 3 и разработки.
Я настроил представления devise sign up и sign in, чтобы они теперь находились внутри модальностей начальной загрузки. Однако, несмотря на использование общих элементов, которые включают в себя «Не член? ссылка «зарегистрироваться здесь», она не отображается в модальном режиме входа.
Когда я копирую и вставляю этот код непосредственно в модальный, модальный регистр отображается в модальном режиме входа. Кнопки не работают, и это выглядит ужасно.
Кто-нибудь знает, как создать ссылку, например «Не участник? зарегистрируйтесь здесь», что приведет к закрытию модального входа и открытию модального регистра?
Спасибо.
Ответ №1:
Модальный переключатель начальной загрузки 4 без скрипта
ИСПРАВЛЕНИЕ: кто-нибудь знает, как создать ссылку, например «забыли пароль?» это приведет к закрытию режима входа в систему и открытию режима забытого пароля?
Вы можете просто переключать модальные, используя атрибут начальной загрузки.
Вам просто нужно добавить этот код в button или любой элемент, который вы хотите, data-dismiss закроет ваш модальный, а data-target откроет ваш второй модальный, также вы можете проверить демонстрацию, ссылкой на которую я поделился ниже.
<button type="button" class="btn btn-danger" data-dismiss="modal" data-toggle="modal" data-target="#Second_modal">Switch Modal</button>
Комментарии:
1. добавление
$("body").addClass("modal-open")
решает проблему прокрутки, как показано в примере кода2. уже добавлено в эту демонстрацию codepen.io/shabbirvaghela/pen/rNVMBNJ это ошибка со стороны bootstrap.
Ответ №2:
Если вы посмотрите на bootstraps modal и прокрутите вниз до его опции методов. Вы можете увидеть, как вручную скрыть и показать модальный с помощью js.
Does anyone know how to create a link, for example "Not a member? sign up here" that will cause the login modal to close and the register modal to open?
Исправить:
Прежде всего, вам нужно убедиться, что HTML-код как register modal, так и login modal присутствует на вашей странице, чтобы их можно было вызвать (я не уверен, но для этого вам, возможно, придется переопределить методы devise, но поскольку ваш вопрос касается скрытия и отображения модальных, поэтому я не буду заходитьтам).
Ваша ссылка может быть чем-то вроде:
<%= link_to "Not a member? sign up here", class: "new_user" %>
и ваш js будет выглядеть так:
$(document).on("click",".new_user",function(){
$('#id_of_sign_in_modal').modal('hide');
$('#id_of_sign_up_modal').modal('show');
});
Комментарии:
1. Идеальный. Спасибо. Я фактически изменил ссылку, чтобы переопределить html (чтобы она не перезагружала страницу при нажатии). Это тоже работает: <%= link_to(‘Не является участником? зарегистрируйтесь здесь’, ‘javascript:;’, класс: «new_user») %>
2. Я делаю что-то подобное, но есть небольшая проблема. Когда модальные переключаются, новый отображается слишком рано, поэтому функция Hide по-прежнему удаляет
.modal-open
класс изbody
элемента, что в большинстве случаев не является проблемой, но вредно, если модальный длинный и прокручиваемый.3. прокрутка активна на главной странице, кто-нибудь решает эту проблему прокрутки?