使用easyui的datetimebox插件输入日期,同时对日期进行验证。


进公司上班有一个月了,公司的项目界面都是用easyui做的,这里总结一些遇到的easyui插件的问题,方便以后用到时可以参考。本次就先说说easyui的datetimebox插件。

1.多个时间输入框,后面的时间一次比前一个输入框时间大。如:time1<time2<time3.时间不正确时,会返回false,同时会有提示。

如下图:

代码如下:HTML代码:


 
 
  1. <td align="right" style="width:20%;">时间1: </td>
  2. <td>
  3. <input type="text" id="time1" style="width: 195px" required="true" editable="false"
  4. class= "easyui-datetimebox"/>
  5. </td> <br/>
  6. <td align="right" style="width:20%;">时间2: </td>
  7. <td>
  8. <input type="text" id="time2" style="width: 195px" required="true" editable="false"
  9. validType= "TimeCheck['time1']" invalidMessage= "time2要大于time1"
  10. class= "easyui-datetimebox"/>
  11. </td> <br/>
  12. <td align="right" style="width:20%;">时间3: </td>
  13. <td>
  14. <input type="text" id="time2" style="width: 195px" required="true" editable="false"
  15. validType= "TimeCheck['time2']" invalidMessage= "time3要大于time2"
  16. class= "easyui-datetimebox"/>
  17. </td>
js代码:

 
 
  1. <script type="text/javascript">
  2. $.extend($.fn.validatebox.defaults.rules,{
  3. TimeCheck:{
  4. validator: function(value,param){
  5. var s = $( "input[name="+param[ 0]+ "]").val();
  6. //因为日期是统一格式的所以可以直接比较字符串 否则需要Date.parse(_date)转换
  7. return value>=s;
  8. },
  9. message: '非法数据'
  10. }
  11. });
  12. </script>


注释:这种方法有个弊端,就是如果先输入后面time2的日期,在输入前面time1的日期,并且time2<time1的话,不会有提示,但是提交表单的时候,会返回false。


2.上面一个年份输入框,选择一个年份,下面输入框的年份必须与上面所选年份相同。如图:


HTML代码:



 
 
  1. <td align="right" style="width:20%;">年 份: </td>
  2. <td>
  3. <select id="year" style="width:195px;" class="easyui-combobox" panelHeight="auto" editable="false">
  4. <option value="2014">2014 </option>
  5. <option value="2015">2015 </option>
  6. <option value="2016">2016 </option>
  7. </select>
  8. </td> <br/>
  9. <td align="right" style="width:20%;">时间1: </td>
  10. <td>
  11. <input type="text" id="time1" validType="TimeCheck" invalidMessage="所选时间年份必须与所选年份相同" style="
  12. width: 195px" required= "true" editable= "false" class= "easyui-datetimebox"/>
  13. </td> <br/>
  14. <td align="right" style="width:20%;">时间2: </td>
  15. <td> <span style="font-family: Arial, Helvetica, sans-serif;"> <input type="text" id="time2" validType="TimeCheck" invalidMessage="所选时间年份必须与所选年份相同" style="width: 195px" required="true" editabl="false" class="easyui-datetimebox"/> </td> </span>


js代码:


 
 
  1. <script type="text/javascript">
  2. $.extend($.fn.validatebox.defaults.rules,{
  3. TimeCheck:{
  4. validator: function(value,param){ //value是所选文本的值,字符串类型
  5. var y=$( '#year').combobox( 'getValue').valueOf(); //取出下拉框的值
  6. var time= new Date( Date.parse(value.replace( /-/g, "/"))); //将文本框自带的值(字符串)转换成Date类型
  7. var t=time.getFullYear().valueOf(); //取得年份
  8. return t==y;
  9. },
  10. message: '选择时间年份必须与提案所在时间一致'
  11. }
  12. });
  13. </script>


看下面代码的结果,如图,value和param的值。


 
 
  1. $.extend($.fn.validatebox.defaults.rules,{
  2. TimeCheck:{
  3. validator:function(value,param){
  4. console.info(value);
  5. console.info(param);
  6. console.info(param[0]);
  7. }
  8. }
  9. });

<input class="easyui-datetimebox"  type="text" id="beginDate" name="beginDate" validType="TimeCheck['a1','a2']" style="width: 195px" required="true" editable="false"/>
 
 




注释:HTML中的invalidMessage="所选时间年份必须与所选年份相同" 是当输入的数据不合法是要显示的信息,如果没有ivalidMessage,就会显示js中的message:‘选择时间年份必须与提案所在时间一致’,如果两者都有的话,会显示HTMl中的提示信息。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值