easyui datebox onchange 输入框改变事件的变通处理

easyui 的 datebox控件只对外提供了一个onSelect事件。
其基类combobox有一个onChange事件。

如果需要在日期控件中手动输入日期时处理一些逻辑,onSelect事件就不能满足了。

比如当手动输入了一个合法的日期后需要获取这个日期然后进行其它逻辑处理。

这个时候可以用onChange事件。


但是如果要在输入的过程中进行对输入的字符串进行处理然后对当前日期控件进行赋值,用onChange事件就麻烦了。
会碰到赋值后显示不出来的问题。

但datebox有一个属性暴露出来。就是parser。这是一个函数,日期控件中的内容有变化时改属性函数会被调用。可以在这个函数中进行特殊处理。虽然这样做可能并不是最安全的。


$("#enddate").datebox({
parser:function(s){
//格式为yyyy-mm-dd
var DateRegExp = /^[1-2]\d{3}-(0[1-9]|1[0-2]){1}-(0[1-9]|[1-2][0-9]|3[0-1]){1}$/g;

if(DateRegExp.test(s)){

}else{
return null;
}
//字符转日期
var t = parseDate(s);
if (!isNaN(t)){

var firstDate = new Date(t.getFullYear(),t.getMonth(),1);

var endDate = new Date(firstDate);

endDate.setMonth(firstDate.getMonth()+1);

endDate.setDate(0);
//日期转字符
var result = endDate.format('yyyy-MM-dd');
if(s != result){
$("#enddate").datebox('setValue',result);
}

return endDate;
} else {

return null;
}
}
});


在这个例子中,对输入的日期字符进行处理,算出用户要输入的日期对应月份的最后一天,填充到日期控件中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值