Что я хочу:
Я хочу инициализировать модальное Magnific Popup с помощью кнопки radio
в HTML-форме. Во всплывающем окне появится кнопка «Отправить».
На самом деле, я хочу инициализировать всплывающее окно, щелкнув label
переключателя, потому что я заменю переключатели пользовательскими переключателями CSS.
Я использую Zepto, потому что он легче, и в противном случае я бы не стал использовать jQuery.
В чем проблема:
- Если я нажму на
label
, я получу модальное окно Magnific, но опцияradio
не будет выбрана. - Если я нажму на саму кнопку
radio
, опция будет выбрана и появится модальное окно. Но, если я закрываю модальное окно, чтобы выбрать другоеoption
, модальное окно появляется без изменения параметра. (Это все равно нельзя использовать, потому что я скрою стандартные переключатели, как упоминалось ранее).
Мой код: (http://jsfiddle.net/Nkc5X/)
HTML:
<form action="#">
<label>
<input type="radio" name="whatside" title="Left" value="Left">
<span>Left</span>
</label>
<label>
<input type="radio" name="whatside" title="Right" value="Right">
<span>Right</span>
</label>
<div id="modal" class="white-popup-block mfp-hide">
<h2>Modal dialog</h2>
<button type="submit" value="Send">Send</button>
<a class="popup-modal-dismiss" href="#">Dismiss</a>
</div>
</form>
JavaScript:
$(function () {
$('label').magnificPopup({
type: 'inline',
items: {src: '#modal'},
preloader: false,
modal: true
});
$(document).on('click', '.popup-modal-dismiss', function (e) {
e.preventDefault();
$.magnificPopup.close();
});
});
Что я пробовал:
Я пробовал несколько вариантов моего html/javascript безрезультатно. Я пытался инициализировать всплывающее окно, используя разные селекторы (элементы label
и input
, класс, идентификатор).