5-15 bootcss 之 modal 以及 jquery ui 之datepicker 小记

  最近公司在用bootstrap和Jquery UI做项目,类似与OA的东西前两天碰到点问题,记录一下。希望读者不要在遇到和我一样的问题。

  1 datepicker。不知道怎么自己下载的bootcss里面没找到datepicker,于是就选了Jquery
UI的datepicker。使用的时候要注意两个问题。

    如果页面上多个input
,并且id都是input1,那么在页面载入完成的时候调用$(‘#input1‘).datepicker(option),得到的结果是只有第一个成功格式化成datepicker;如果换一种选择器,比如$(‘input‘).datepicker(option),那么,每个都能触发datepicker的选择效果,但是,后面的元素选中日期之后只会体现在第一个上面。

  2 bootstrap里面的modal。用一个button来触发modal的时候,有两个属性一定不要忘记,①
data-toggle=‘modal‘  ② data-target=‘#myModal‘;顺便说一下,button的type
属性默认是submit,所以,记得赋值成button。然后是如果不想让modal在点到灰色区域的时候就关闭的话记得设置modal的 data-backdrop
=
‘static‘。还有就是如果modal里面有datepicker,那么,默认情况下无法在点击input的时候显示出datepicker的日期选择框的。解决方案在stackoverflow有。链接戳这里

  关键js代码如下:


 1 // Since confModal is essentially a nested modal it‘s enforceFocus method
2 // must be no-op‘d or the following error results
3 // "Uncaught RangeError: Maximum call stack size exceeded"
4 // But then when the nested modal is hidden we reset modal.enforceFocus
5 var enforceModalFocusFn = $.fn.modal.Constructor.prototype.enforceFocus;
6
7 $.fn.modal.Constructor.prototype.enforceFocus = function() {};
8
9 $confModal.on(‘hidden‘, function() {
10 $.fn.modal.Constructor.prototype.enforceFocus = enforceModalFocusFn;
11 });
12
13 $confModal.modal({ backdrop : false });

  关于那段注释,大致意思就是说modal显示的时候必须让modal的enforceFocus方法制空(所谓的no-op否则的话会有个异常。)。然后隐藏的时候再还原。然后我自己用的时候估计是版本不同的缘故,要稍微修改一下。$confModal就是自己用的modal。

  关键代码如下:

1 $.fn.modal.Constructor.prototype.enforceFocus = function () { };
2 var $configModal = $(".temple");
3 $configModal.on(‘hide.bs.modal‘, function () {
4 $.fn.modal.Constructor.prototype.enforceFocus = enforceModalFocusFn;
5 });

  改变了一下modal的事件名字,查了文档,上面给出的事件名字叫‘hide.bs.modal‘。如果你用的是bootcss,上面的名字还是hide,两个js文件不一样。还有就是bootstrap触发modal的时候不需要写$confModal.modal({
backdrop : false
});应该在button那一步就完成事件绑定了。

  

  虽然知道了上面的两点,但是做页面的时候还是出现了modal里面的datepicker"无法正常显示",还有就是显示了之后"无法选中日期的问题"。后来终于明白,其实是这个modal所在的页面有一个PartialView和model自身的modal-content的PartialView是同一个,导致了Id的重复。外面的PartialView正常情况下又是不显示的,所以一下子就不晓得问题出现的原因了,纠结了不少时间。
好在现在解决了。至于解决方案,就是在当modal显示出来的把modal里面元素的id都加上一个特定的前缀。关于加前缀这件事情,因为没注意$.find()方法其实查的是后代元素,也就是说$(‘<li>a</li>‘).find(‘li‘)其实find不到任何东西,坑了自己一下。。。

5-15 bootcss 之 modal 以及 jquery ui 之datepicker 小记,布布扣,bubuko.com

时间: 2024-10-17 13:05:14

5-15 bootcss 之 modal 以及 jquery ui 之datepicker 小记的相关文章

jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)

使用jQuery ui首先需要引入jQuery类库,jQuery ui js脚本和jQuery ui css样式表.代码示例如下: <script src="js/jquery-1.7.1.js"></script> <script src="js/jquery-ui-1.8.18.custom.min.js"></script> <link rel="stylesheet" type=&qu

浅析jquery ui的datepicker组件

今天计划在博客上添加一个日历,方便用户查看日期.Google了一圈,最终决定使用jquery ui的datepicker部件实现.原因有三:Datepicker使用配置比较简洁,几行代码就可以得到一个简易日历:其有详细的说明文档和参考资料:可扩展性强,而且支持定制化界面. 首先是依赖文件的引入.可以使用在线资源,也可以通过bower下载到本地.我是下载到了一个public文件夹下,所以在代码开始时候,添加标签: <link rel="stylesheet" href="

jQuery UI的datepicker()与变更格式

继续MVC应用程序的练习,刚刚练习了jQuery的UI中的datepicker()的方法,它是为了让用户能在文本框中快捷输入日期. 代码简洁与简单. 打开以前练习的一个视图Views\Home\Index.cxhtml:添加一个input html tag,它的type为text: 然后在视图的head节点内,引用jQuery的UI,怎样引用,可以参考:<MVC程序实现Autocomplete功能>http://www.cnblogs.com/insus/p/3546255.html 文中有介

Jquery UI的datepicker插件使用

原文链接;http://www.ido321.com/375.html Jquery UI是一个非常丰富的Jquery插件,而且UI的各部分插件能够独自分离出来使用.这是其它非常多Jquery插件没有的优势. 近期对UI中的datepicker插件学习了一下,这款日期选择/日历显示插件非常好用.废话不多说,先来张图.看看效果: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTA0Mzg0Mw==/font/5a6L5L2T/fontsize/

Jquery UI的datepicker插件使用方法

原文链接;http://www.ido321.com/375.html Jquery UI是一个非常丰富的Jquery插件,并且UI的各部分插件可以独自分离出来使用,这是其他很多Jquery插件没有的优势.最近对UI中的datepicker插件学习了一下,这款日期选择/日历显示插件很好用.废话不多说,先来张图,看看效果: <span style="font-size:18px;"><!DOCTYPE> <html> <head> <

Adding a Timepicker to jQuery UI Datepicker

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="

jQuery UI部件

(一)按钮 button()方法回修改单个按钮来增强外观,而buttonset()方法对一组按钮起作用. button(options)   button('enable')   button('disable')   button('destroy')   button('option', optionName, value) buttonset同上 $('').button({}); icons 指定一个或来那个在按钮显示的图标,主要图标由对象的primary属性标识,次要图标由second

MVC自定义编辑视图,DateTime类型属性显示jQuery ui的datapicker

实现的效果为:在编辑视图中,对DateTime类型的属性,显示jQuery UI的datepicker.效果如下: Student.cs public class Student    {        public int Id { get; set; }        public string Name { get; set; }        public DateTime? JoinTime { get; set; }    } HomeController: public class

jquery UI datepicker汉化

由于近期工作需要,jquery ui的datepicker需要汉化,特此把代码贴在这$(function() { $.datepicker.regional["zh-CN"] = { closeText: "关闭", prevText: "<上月", nextText: "下月>", currentText: "今天", monthNames: ["一月", "二月