最近公司在用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代码如下:

 // Since confModal is essentially a nested modal it's enforceFocus method
// must be no-op'd or the following error results
// "Uncaught RangeError: Maximum call stack size exceeded"
// But then when the nested modal is hidden we reset modal.enforceFocus
var enforceModalFocusFn = $.fn.modal.Constructor.prototype.enforceFocus; $.fn.modal.Constructor.prototype.enforceFocus = function() {}; $confModal.on('hidden', function() {
$.fn.modal.Constructor.prototype.enforceFocus = enforceModalFocusFn;
}); $confModal.modal({ backdrop : false });

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

  关键代码如下:

 $.fn.modal.Constructor.prototype.enforceFocus = function () { };
var $configModal = $(".temple");
$configModal.on('hide.bs.modal', function () {
$.fn.modal.Constructor.prototype.enforceFocus = enforceModalFocusFn;
});

  改变了一下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 小记的更多相关文章

  1. 浅析jquery ui的datepicker组件

    今天计划在博客上添加一个日历,方便用户查看日期.Google了一圈,最终决定使用jquery ui的datepicker部件实现.原因有三:Datepicker使用配置比较简洁,几行代码就可以得到一个 ...

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

    这篇文章主要介绍了jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate),需要的朋友可以参考下 使用jQuery ui首先需要引入jQuery类库 ...

  3. Jquery UI的datepicker插件使用方法

    原文链接;http://www.ido321.com/375.html Jquery UI是一个非常丰富的Jquery插件,并且UI的各部分插件可以独自分离出来使用,这是其他很多Jquery插件没有的 ...

  4. Jquery UI的datepicker插件使用

    原文链接;http://www.ido321.com/375.html Jquery UI是一个非常丰富的Jquery插件,而且UI的各部分插件能够独自分离出来使用.这是其它非常多Jquery插件没有 ...

  5. jQuery UI的datepicker日期控件如何让他显示中文

    首先是引入UI的JS文件和模板文件,如下: <link rel=”stylesheet” href=”./ui/themes/le-frog/jquery.ui.all.css”> < ...

  6. jQuery UI的datepicker()与变更格式

    继续MVC应用程序的练习,刚刚练习了jQuery的UI中的datepicker()的方法,它是为了让用户能在文本框中快捷输入日期. 代码简洁与简单. 打开以前练习的一个视图Views\Home\Ind ...

  7. Jquery ui datepicker 设置日期范围,如只能隔3天

    最近的后台项目前端使用了jquery ui 日历控件自然就使用了jquery ui 的   datepicker 后台数据比较好大,一般是千万级的和百万级的关联,查询会很慢,所以后加想多加些过滤条件, ...

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

    实现的效果为:在编辑视图中,对DateTime类型的属性,显示jQuery UI的datepicker.效果如下: Student.cs public class Student    {       ...

  9. jquery UI datepicker汉化

    由于近期工作需要,jquery ui的datepicker需要汉化,特此把代码贴在这$(function() { $.datepicker.regional["zh-CN"] = ...

随机推荐

  1. centos7.6 ssh远程链接配置

    1.firewall增加22端口号 增加方式有两种,直接编辑firewall的public.xml增加 vi /etc/firewalld/zones/public.xml 进入后按i健光标移动到zo ...

  2. Educational Codeforces Round 58 (Rated for Div. 2) D 树形dp + 数学

    https://codeforces.com/contest/1101/problem/D 题意 一颗n个点的树,找出一条gcd>1的最长链,输出长度 题解 容易想到从自底向长转移 因为只需要g ...

  3. centos6安装oracle时运行./runInstaller无法弹出图形界面

    首先确保安装oracle的机器上安装了图形化界面. 1.利用xmanager登录到安装oracle的服务器上(直接用root用户登录) 2.运行 export DISPLAY=你的本机地址:0.0 3 ...

  4. 第二次OO总结

    作业5——多线程电梯 好像失忆了,竟然对这三部电梯很陌生,我尽量回忆一下当时挣扎的场景orz 整体思路和第二次电梯差不多,但是将调度器类套在了电梯类里 优点可能是没有无效,足矣!!!缺点emmmm要是 ...

  5. 《vue.js快跑》总结:为什么选择VUE

    2019-3-31 为什么选择Vue 有这个一个需求,我们需要根据后端数据接口请求返回的数组在页面中按列表展示? 传统上我们使用jQuery的Ajax发送http请求,获取数据.判断列表数据是否存在, ...

  6. 缓存,减少对sql语句的访问

    一级缓存 SqlSession 的缓存  ------>自动开启 二级缓存: 做到从不同的缓存中共享数据 SqlSessionFactory 的缓存 --->需要手动开启 映射配置文件中配 ...

  7. 20145232韩文浩 《网络对抗技术》 Web安全基础实践

    问题回答 SQL注入攻击原理?如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,使 ...

  8. 基于fpga的vga学习(2)

    本次学习主要向配合basys2实行. 上次学习vga的rgb三个output都是1位的,但是我看了basys2的rgb分别是332位,这里让我卡顿了很久, 之后通过查资料才知道,rgb的不同大小表示的 ...

  9. js的arguments到底是什么?

    类数组对象:arguments 总所周知,js是一门相当灵活的语言.当我们在js中在调用一个函数的时候,我们经常会给这个函数传递一些参数,js把传入到这个函数的全部参数存储在一个叫做arguments ...

  10. Smokeping安装部署

    稳定性检测工具smokeping安装配置和使用方法 Smokeping介绍 是对IDC网络质量,稳定性等最好的检测工具,包括常规的 ping,dig,echoping,curl等,可以监视www服务器 ...