input绑定datapicker控件后input再绑定blur或者mouseout等问题
input绑定datapicker控件后input再绑定blur或者mouseout等问题
问题描述:今天在修改一个东西的时候需要给一个input输入域绑定blur事件,从而当它失去焦点后动态修改其中的内容。但是问题来了,当点击输入域datapicker控件出现,当离开输入域去选择时间时就触发了blur事件,而这个时候获取输入域内的内容时获取的是选择时间之前输入域的内容。这跟我们的想法相背离。比方说我们想校验选择的时间,可是每次都是校验的选择时间之前输入域的内容。
之前的错误做法:代码如下
$('input.date').live('blur',function(){//选择class为date的input输入域
if("" == $(this).val().trim()){
$(this).val('balabalabala');
}
});
这段代码很简单,目的是当输入域失去焦点时获取输入域的内容,并判断是否为空,如果为空则设置内容为balabalabala。(当然,你在这个时候校验或者正则匹配是一样的)而问题来了,除非你输入域失去焦点前内容为空,否则永远不会修改其内容为balabalabala。换句话说,取到的内容为选择时间之前的内容。这跟我们的初衷违背,我们希望的是取到选择时间之后的内容并当输入域失去焦点的时候进行操作或者校验等。
解决办法:
常规思路:从输入域input绑定事件(比方说blur)去思考。结果是总是出错,问题得不到解决。唯一可行的但是不科学或者说不合理的方法如下:
$('input.date').blur(function () {
setTimeout(function () { /* 你的代码 */ }, 1000);
});
这段代码也很简单,选中控件,在失去焦点后不是马上去执行,而是设置一个延时,等待1秒或者几秒后再去执行。好了,问题解决。但是方法可行,却不可靠。你无法去左右用户点击事件后去点击其它部分之间的时间大小。
逆向思考:从datepicker这个插件方向去思考。该插件提供了几个方法,可以满足要求。
方法1:onSelect
$('input.date').datepicker({
onSelect: function(dateText) {
/*代码 */
if("" == $(this).val()){
$(this).val("balabalabala");
}
}
});
方法2:
$(".date-picker")
.datepicker(options)
.change(function () {
if("" == $(this).val()){
$(this).val("balabalabala");
}
});
问题得到解决。
input绑定datapicker控件后input再绑定blur或者mouseout等问题的更多相关文章
- input的file 控件及美化
在一些网站进行上传时,当单击了“浏览”按钮之后会弹出[选择文件]的对话框.想要实现这一功能,用input的file控件来实现就好啦~ <!doctype html> <html la ...
- HTML控件篇 -- input
1. 取消input提示框及自动填充: <input type="text" autocomplete="off" /> 处理chrome下自动填充 ...
- 页面加载完成触发input[type="file"]控件问题
由于浏览器厂家的限制,不同的浏览器不开放页面加载完成就允许触发input[type="file"]控件 测试 Chrome .火狐 .IE .微信客户端QQ =>桌面端: C ...
- input file HTML控件控制
网页上添加一个input file HTML控件: 1 <input id="File1" type="file" /> 默认是这样的,所有文件类型 ...
- WPFS数据绑定(要是后台类对象的属性值发生改变,通知在“client界面与之绑定的控件值”也发生改变须要实现INotitypropertyChanged接口)
WPFS数据绑定(要是后台类对象的属性值发生改变,通知在"client界面与之绑定的控件值"也发生改变须要实现INotitypropertyChanged接口) MainWindo ...
- HTTP模拟工具【C#/Winform源码】、Json绑定TreeView控件、使用了MetroModernUI、RestSharp、Dapper.Net、Newtonsoft.Json、SmartThreadPool这几个主要开源框架
HTTP模拟工具 开发语言:C#/Winform开发工具:Visual Studio 2017数据库: SQLite使用框架:界面-MetroModernUI Http请 ...
- Dev控件VGridView单元格绑定控件
实现的效果如下图: 1,实现分组显示 2,每行所绑定的控件不统一,内容自定义 实现方法: 采用VGridControl进行内容的定制 首先根据XML文件进行数据填充
- Dev控件GridView单元格绑定控件
Dev控件GridView单元格绑定控件 //文本按钮 RepositoryItemButtonEdit btnFields = new RepositoryItemButtonEdit();//创建 ...
- 【WPF】WPF通过RelativeSource绑定父控件的属性
1.后台代码实现绑定父控件的属性 RelativeSource rs = new RelativeSource(RelativeSourceMode.FindAncestor); //设定为离自己控件 ...
随机推荐
- iOS-KVC/KVO的理解
1.KVC:Key-Value Coding,直译是:键值编码.简单来讲,就是给属性设置值的:复杂来讲,根据网上的说法,KVC运用了一个isa-swizzling技术.isa-swizzling就是类 ...
- ui-bootstrap-tpls-0.11.0.min.js
- ubuntu基本配置
新系统装好后的操作: 1.resource updata:服务器镜像地址选择 2.删除不必要软件: 2.1:libreoffice sudo apt-get remove libreoffice-co ...
- jellyfish K-mer analysis and genome size estimate
http://www.cbcb.umd.edu/software/jellyfish/ http://www.genome.umd.edu/jellyfish.html https://githu ...
- Windows IP安全策略。
一直在遗憾Windows下没有一个如Linux小Iptables一样的工具,能够严格的管控机器的访问限制. 后面突然看到一个叫Ipsec在Windows感觉还不错.以命令行的方式进行定义的话在多台服务 ...
- ListView滚动到顶部
videoAdapter.notifyDataSetChanged();videoListView.setSelection(0); 注意顺序先notify后setSelection
- Chorme dev tools小技巧
1.快速稳健转换:打开DevTools,按下Ctrl+P来快速寻找和打开你工程中的任意文件. 2.在源代码中搜索:打开DevTools,按下Ctrl+Shift+F,即可在所有已加载文件中查找一个特定 ...
- ehcache 缓存
一:详细配置步骤 1,添加ehcache.xml文件 将ehcache.xml文件添加到src路径下面.ehcache.xml文件内容如下 <ehcache> <diskStore ...
- tools/version.c
/* * linux/version.c * * Copyright (C) 1992 Theodore Ts'o * * May be freely distributed as part ...
- NOI 2004 郁闷的出纳员(平衡树)
题目描述 OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资 ...