使用表单元素(输入)初始化放大弹出菜单
Initializing Magnific Popup with form element (input)
我想要什么:
我想从HTML表单上的radio
按钮初始化模式放大弹出菜单。然后弹出菜单将显示"发送"按钮。
实际上,我想通过单击单选输入的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
元素、class、id)初始化弹出窗口。
好吧,我把这个问题搁置了一段时间,终于找到了解决方案。
我从input
元素初始化弹出窗口:$('input').magnificPopup
,这允许我在单击label
时选择该选项。
我使用本机JavaScript重置表单控件,使用SO答案中描述的方法:$('form')[0].reset();
在此处工作JSFiddle:http://jsfiddle.net/Nkc5X/1/
$(document).ready(function() {
$('input').magnificPopup({
type: 'inline',
items: {src: '#modal'},
preloader: false,
modal: true
});
$(document).on('click', '.popup-modal-dismiss', function (e) {
e.preventDefault();
$.magnificPopup.close();
$('form')[0].reset();
});
});
你可以这样做
$.magnificPopup.open({
items: {
src: '<div class="my-container">here is the content of the html you want to popup</div>'
},
callbacks: {//this is optional
close: function () {
//do something on exit
}
}
});
相关文章:
- 使用javascript函数在页面初始化后加载jquery
- 未捕获错误:无法在初始化之前调用方法;
- 如何在剑道网格初始化后设置pageSizes
- React redux初始化功能,无论状态变化如何
- 为什么可以't Protractor在自动初始化的Angular网站上查找Angular
- 尝试初始化()Spine's控制器和故障
- Angular.js延迟控制器初始化
- 对插件初始化后动态加载的元素进行样式设置
- Angular JS控制器初始化错误
- 在XMLHttpRequest之后重新初始化jQuery
- ember-js组件初始化不同的函数
- Youtube JavaScript API不是't正在初始化
- 函数无法识别初始化的变量
- datepicker引导程序再次初始化
- jquery数据表在初始化时设置宽度
- 如何使用app和secret进行安全的解析初始化
- 从javascript中再次初始化c变量
- ng重复中的ng模型-初始化唯一作用域属性
- 无法初始化放大弹出式灯箱
- 使用表单元素(输入)初始化放大弹出菜单