进公司上班有一个月了,公司的项目界面都是用easyui做的,这里总结一些遇到的easyui插件的问题,方便以后用到时可以参考。本次就先说说easyui的datetimebox插件。
1.多个时间输入框,后面的时间一次比前一个输入框时间大。如:time1<time2<time3.时间不正确时,会返回false,同时会有提示。
如下图:
代码如下:HTML代码:
- <td align="right" style="width:20%;">时间1:</td>
- <td>
- <input type="text" id="time1" style="width: 195px" required="true" editable="false"
- class="easyui-datetimebox"/>
- </td><br/>
- <td align="right" style="width:20%;">时间2:</td>
- <td>
- <input type="text" id="time2" style="width: 195px" required="true" editable="false"
- validType="TimeCheck['time1']" invalidmessage="time2要大于time1"
- class="easyui-datetimebox"/>
- </td><br/>
- <td align="right" style="width:20%;">时间3:</td>
- <td>
- <input type="text" id="time2" style="width: 195px" required="true" editable="false"
- validType="TimeCheck['time2']" invalidMessage="time3要大于time2"
- class="easyui-datetimebox"/>
- </td>
js代码:
- <script type="text/javascript">
- $.extend($.,{
- TimeCheck:{
- validator:function(value,param){
- var s = $("input[name="+param[0]+"]").val();
- //因为日期是统一格式的所以可以直接比较字符串 否则需要Da(_date)转换
- return value>=s;
- },
- message:'非法数据'
- }
- });
- </script>
注释:这种方法有个弊端,就是如果先输入后面time2的日期,在输入前面time1的日期,并且time2<time1的话,不会有提示,但是提交表单的时候,会返回false。
2.上面一个年份输入框,选择一个年份,下面输入框的年份必须与上面所选年份相同。如图:
HTML代码:
- <td align="right" style="width:20%;">年 份:</td>
- <td>
- <select id="year" style="width:195px;" class="easyui-combobox" panelHeight="auto" editable="false">
- <option value="2014">2014</option>
- <option value="2015">2015</option>
- <option value="2016">2016</option>
- </select>
- </td><br/>
- <td align="right" style="width:20%;">时间1:</td>
- <td>
- <input type="text" id="time1" validType="TimeCheck" invalidMessage="所选时间年份必须与所选年份相同" style="
- width: 195px" required="true" editable="false" class="easyui-datetimebox"/>
- </td><br/>
- <td align="right" style="width:20%;">时间2:</td>
- <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代码:
- <script type="text/javascript">
- $.extend($.,{
- TimeCheck:{
- validator:function(value,param){//value是所选文本的值,字符串类型
- var y=$('#year').combobox('getValue').valueOf();//取出下拉框的值
- var time=new Date(Da(/-/g, "/")));//将文本框自带的值(字符串)转换成Date类型
- var t=().valueOf(); //取得年份
- return t==y;
- },
- message:'选择时间年份必须与提案所在时间一致'
- }
- });
- </script>
看下面代码的结果,如图,value和param的值。
- $.extend($.,{
- TimeCheck:{
- validator:function(value,param){
- con(value);
- con(param);
- con(param[0]);
- }
- }
- });
<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中的提示信息。