关于easyui-datebox日期最大默认值和起止日期验证的问题

起止日期验证:

首先自定义验证规则:

endDate: {
          validator: function (value, param) {
              var start = $(param[0]).datetimebox('getValue');
              return value >= start;    
          },
          message: '结束日期应大于等于开始日期!'
      }

在页面引用自定义的验证规则:

<input type="text" name="balanceDT_B"  id="balanceDT_B" class="easyui-datebox" editable="false" >~
<input type="text" name="balanceDT_E"  id="balanceDT_E" class="easyui-datebox" data-options="validType:'endDate[\'#balanceDT_B\']'" editable="false">

data-options中validType使用我们定义的验证规则endDate,传入参数开始日期标签id。



日期最大默认值:

设置日期最大默认值需要修改源码,jquery.datebox.js和jquery.calendar.js。

打开jquery.datebox.js,找到

/**
 * if the calendar isn't created, create it.
 */
为calendar添加endDate属性,

$.extend(state.calendar.calendar('options'), {
				fit: true,
				border: false,
				endDate:opts.endDate,
				onSelect: function(date) {
					var target = this.target;
					var opts = $(target).datebox('options');
					setValue(target, opts.formatter.call(target, date));
					$(target).combo('hidePanel');
					opts.onSelect.call(target, date);
				}
			});


接着打开jquery.calendar.js,找到show方法,在循环设置日期中添加如下代码:

if (!opts.validator.call(target, dvalue)){
					cls += ' calendar-disabled';
				}
				//设置最大选择时间(默认为当前时间),超过最大选择时间不可选
				if(!opts.endDate){
					opts.endDate = compareNow;
				}
				var endTmp = opts.endDate.split('-');
			    if((day[0] > endTmp[0]) || (day[0] == endTmp[0] && day[1]>endTmp[1]) || 
			    		(day[0]==endTmp[0] && day[1]==endTmp[1] && day[2]>endTmp[2])){
			    	cls += ' calendar-disabled';
			    }
			    /

其中的compareNow为循环外设置的当前日期:

var compareNow = now.getFullYear()+'-'+(now.getMonth()+1)+'-'+now.getDate();

如果要手动设置最大可选日期的话,在标签中加入data-options的endDate值。

<input type="text" name="balanceDT_B"  id="balanceDT_B" class="easyui-datebox" data-options="endDate:'2017-1-1'" editable="false" >

到此,关于easyui-datebox日期最大默认值和起止日期验证的问题就解决了。(还是97Date好用些吧。。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值