博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery easyui 操作总结
阅读量:5969 次
发布时间:2019-06-19

本文共 9099 字,大约阅读时间需要 30 分钟。

hot3.png

src:http://lhdst-163-com.iteye.com/blog/1707232

1、dialog 
Java代码  
收藏代码
  1. $("#dialog-form").dialog({  
  2.                     title : "任務",  
  3.                     width : 500,  
  4.                     resizable : false,  
  5.                                         cache: false,  //禁止缓存  
  6.                 href: '/Admin/Project/videoPlayer',//加载的页面地址  
  7.                                         closed: false,//默认不弹出  
  8.                     modal : true,//模式化窗口  
  9.                     shadow:false,//是否显示隐藏。若dialog的宽高是动态变化的,shadow不会自动更新。这种情况下最好设置为false。否则要手动处理  
  10.                     buttons : [{  
  11.                         text : 'Save',  
  12.                         handler : saveTask  
  13.                     }, {  
  14.                         text : 'Cancel',  
  15.                         handler : resetDialog  
  16.                     }]  
  17.                 });  
  18. $('#dialog-form').dialog('close');//关闭  
  19. $('#dialog-form').dialog('open');//打开  
不顯示默認的close按鈕 
Java代码  
收藏代码
  1. closable:false,  
提示:dialog繼承自window,所以window的屬性設置dialog也可以用。 
2、draggable 
缺点:不能设置拖动范围。即使包含在一个div的container下,但是依然可以无限制拖动。而jquery ui能实现该功能。所以jquery easyui的draggable需要手动判断实现该功能。 
Java代码  
收藏代码
  1. //拖动效果  
  2.             container.draggable({  
  3.                 containment : "#grid",//父容器  
  4.                 scroll : false,  
  5.                 delay : 0,  
  6.                 isDrag : true,  
  7.                 onStopDrag:function(e){  
  8.                     //获取拖动div容器  控制拖动范围  
  9.                     var dragContainer = $(".taskSelected").parent().parent();  
  10.                     var left = parseInt(dragContainer.css("left"));  
  11.                     var top = parseInt(dragContainer.css("top"));  
  12.                     if(isNaN(left) || left < 10 ){  
  13.                         dragContainer.css("left","10px")  
  14.                     }  
  15.                     if(isNaN(top) || top < 10 ){  
  16.                         dragContainer.css("top","10px")  
  17.                     }  
  18.                     var maxLeft = parseInt($("#grid").css("width"));  
  19.                     var maxTop = parseInt($("#grid").css("height"));  
  20.                     if(left >=  maxLeft){  
  21.                         dragContainer.css("left",(maxLeft-60)+"px");  
  22.                     }  
  23.                     if(top >= maxTop ){  
  24.                         dragContainer.css("top",(maxTop-60)+"px");  
  25.                     }  
  26.                 }  
  27.             });  
3、validate 
整个form的验证结果 
$("#taskForm").form('validate') 
文本验证 
Java代码  
收藏代码
  1. <input type="text" name="taskName" id="taskName" validType="validateText"  required="true"  class="easyui-validatebox" />  
删除验证提示 
Java代码  
收藏代码
  1. $(".easyui-validatebox").removeClass("validatebox-invalid");//删除验证提示  
删除验证 
Java代码  
收藏代码
  1. $("#modelName").validatebox("destroy");  
扩展验证 
Java代码  
收藏代码
  1. $.extend($.fn.validatebox.defaults.rules, {    
  2.                 equals: {    
  3.                     validator: function(value){    
  4.                         return value > 0;  
  5.                     },    
  6.                     message: '數據不正確,請重新輸入'    
  7.                 }    
  8. //数字验证应用扩展验证规则  
  9. <input name="test"  max="9999.99" precision="2" invalidMessage="不能超過6位數字"   
  10.                                  value="{$printDetailsBSig}" validType="equals[]"  class="sig easyui-numberbox" />  
  11.   
  12.             });  
Java代码  
收藏代码
  1. $(document).ready(function(){  
  2.     $.extend($.fn.validatebox.defaults.rules, {    
  3.         userID: {    
  4.             validator: function(value){  
  5.                 var reg = /^[a-zA-Z_0-9]+$/  
  6.                 return reg.test(value);    
  7.             },    
  8.             message: '登錄名必須為字符[A-Z]或數字'    
  9.         }    
  10.     });   
  11.       
  12.     $.extend($.fn.validatebox.defaults.rules, {    
  13.         validateText: {    
  14.             validator: function(value){  
  15.                 var reg = /[<>]+/  
  16.                 return !reg.test(value);    
  17.             },    
  18.             message: '不能含有特殊字符<>'    
  19.         }    
  20.     });   
  21.   
  22.     $.extend($.fn.validatebox.defaults.rules, {    
  23.         number: {    
  24.             validator: function(value){  
  25.                 var reg = /^[0-9]+$/  
  26.                 return reg.test(value);    
  27.             },    
  28.             message: '此項必須為數字'    
  29.         }    
  30.     });   
  31.     
  32.   $.extend($.fn.validatebox.defaults.rules, {    
  33.           areaCode : {    
  34.             validator: function(value){  
  35.                 var reg = /^0\d{
    0,4}$/  
  36.       
  37.                 return reg.test(value);    
  38.             },    
  39.             message: '此項必須為1-4位數字'    
  40.         }    
  41.     }); //Extension number  
  42.   $.extend($.fn.validatebox.defaults.rules, {    
  43.           tel : {    
  44.             validator: function(value){  
  45.                 var reg = /^[0-9]{
    0,8}$/  
  46.                 return reg.test(value);    
  47.             },    
  48.             message: '此項必須為1-8位數字'    
  49.         }    
  50.     });   
  51.   $.extend($.fn.validatebox.defaults.rules, {    
  52.           extensionNumber : {    
  53.             validator: function(value){  
  54.                 var reg = /^[0-9]{
    0,5}$/  
  55.                 return reg.test(value);    
  56.             },    
  57.             message: '此項必須為1-5位數字'    
  58.         }    
  59.     });   
  60.   
  61.   
  62.     $.extend($.fn.validatebox.defaults.rules, {    
  63.         date: {    
  64.             validator: function(value){  
  65.                 var reg = /^[0-9]{
    4}-[0-9]{
    1,2}-[0-9]{
    1,2}$/  
  66.                 return reg.test(value);    
  67.             },    
  68.             message: '此項必須為yyyy-mm-dd格式的日期'    
  69.         }    
  70.     });   
  71.       
  72.     $.extend($.fn.validatebox.defaults.rules, {    
  73.         account: {    
  74.             validator: function(value){  
  75.                 var reg = /^[A-Z_0-9]+$/  
  76.                 return reg.test(value);    
  77.             },    
  78.             message: 'Account 只能輸入大写字母'   
  79.         }    
  80. $.extend($.fn.validatebox.defaults.rules, {    
  81.         modelName: {    
  82.             validator: function(value){  
  83.                 var reg = /^[a-zA-Z_0-9]+$/  
  84.                 return reg.test(value);    
  85.             },    
  86.             message: 'Model Name必須為字符[A-Z]或數字'    
  87.         }    
  88.     });   
  89.     });   
  90.   
  91. });  
4、格式化日期 
Java代码  
收藏代码
  1. $("#startDate,#endDate").datebox({  
  2.         formatter:formater  
  3.     });  
  4. //格式化日期  
  5. function formater(date)  
  6. {  
  7.     return date.getFullYear()+"-"+(parseInt(date.getMonth())+1) +"-"+date.getDate();  
  8. }  
  9. <input name="startDate" id="startDate" class="easyui-datebox" /> to   
  10.                     <input name="endDate" id="endDate" class="easyui-datebox" />  
  11. //日期控件只读  
  12. $(".datebox :text").attr("readonly","readonly");  
碰到一个问题,页面初始化时给一个datebox赋值,赋值是成功的,页面显示了这个值,也能将这个值赋给一个变量。但是在post form的时候这个datebox的getvalue是空的,查看html的值也是空的。但是给个延时50毫秒,html就有值了。很奇怪啊 
5、TAB 
div初始化 
Java代码  
收藏代码
  1. <div id="tt" class="easyui-tabs" data-options="tools:'#tab-tools'" style="width:700px;height:250px;">  
  2.         <div title="Tab1" data-options="tools:'#p-tools'" style="padding:20px;">  
  3.         </div>  
  4.         <div title="Tab2" data-options="closable:true,cache:false,href:'tabs_href_test.html'" style="padding:20px;">  
  5.             This is Tab2 with close button.  
  6.         </div>  
  7. </div>  
选择指定index的tab 
Java代码  
收藏代码
  1. $("#tt").tabs('select',2);  
禁用TAB 
Java代码  
收藏代码
  1. $('#tt').tabs('disableTab'1);   
  2. $('#tt').tabs('enableTab'1);  // enable the second tab panel  
  3. $('#tt').tabs('enableTab''Tab2'); enable the tab panel that has 'Tab2' title  
获取当前tab 
Java代码  
收藏代码
  1. var tab = $('#tt').tabs('getSelected');  
  2. var index = $('#tt').tabs('getTabIndex',tab);  
切换tab时验证。若验证不通过则禁止切换 
Java代码  
收藏代码
  1.       
  2. $("ul.tabs li").bind("mousedown", function(event) {  
  3.         var currTabIndex = getCurrTabIndex();  
  4.         var index = $(this).index();  
  5.         if (currTabIndex == index)  
  6.             return;  
  7.         var targetIndex = (currTabIndex == 1) ? 0 : 1;  
  8.         var valid1 = $("#tabs").find(".validatebox-invalid").length;  
  9.         if (valid1) {  
  10.             showTip("請填寫完整!");  
  11. //禁用要切换的tab再启用。这样就可以禁止tab的onSelect事件,并且样式还是正常的enable。  
  12.         $('#tabs').tabs('disableTab', targetIndex);  
  13.             $('#tabs').tabs('enableTab', targetIndex);  
  14.         } else {  
  15.             if (targetIndex == 1) {  
  16.                 var valid2 = checkMemberValid();  
  17.                 if (!valid2) {  
  18.                     $('#tabs').tabs('disableTab', targetIndex);  
  19.                 }  
  20.             }  
  21.             $('#tabs').tabs('enableTab', targetIndex);  
  22.         }  
  23.     })  
tab的内容是html 
Java代码  
收藏代码
  1. <div id="tabs" class="easyui-tabs">  
  2.                         <div title="Project Info" data-options="closable:false,cache:false,href:'/Admin/Project/editProject/projectID/{$projectID}'" style="padding:20px;">  
  3.                         </div>  
  4.                         <div title="Videos" data-options="closable:false,cache:false,href:'/Admin/Project/editVideo/projectID/{$projectID}'" style="padding:20px;">  
  5.                         </div>  
  6.                     </div>  
若是这种内置方式,则内置的html的js文件必须放在主页面内。否则不会调用。相当于用get方式将该html的内容嵌套到主页面中。而不会加载对应的js和css文件。 
在tab加载完内容之后执行初始化函数 
$("#tabs").tabs({ 
onLoad:function(i){ 
console.log(i); 
initProject();//初始化editProject页面 
}) 
这种方式的优点:由于嵌套的内容是div,所以内容的高度增加或减少后会自动调整div的高度。 
缺点: 
1 若2个tab都包含了datebox元素,第2个tab的datebox的宽度会被设置为0.不知道什么原因。只能通过css强制更改对应的宽度。 
代码如下 
Java代码  
收藏代码
  1. /**jquery easy ui datebox**/  
  2. .datebox {  
  3.     width:126px !important;  
  4. }  
  5. .datebox .combo-text {  
  6.     width:108px !important;  
  7. }  
2 初始化的时候以下代码执行了2次 
Java代码  
收藏代码
  1. $("#tabs").tabs({  
  2.         onLoad:function(i){  
  3.             console.log(i);  
  4.             initProject();//初始化editProject页面  
  5.         }  
  6.     })  
这个原因是因为我在div中添加了tab的class,easyui会初始化一次,定义了tabs函数又会执行一次。将div的class删除掉就可以了。 
如下 
Java代码  
收藏代码
  1. <div id="tabs" style="min-height:400px;height:650px; overflow: hidden;">  
  2.                         <div title="Project Info" data-options="closable:false,cache:false,href:'/Admin/Project/editProject/projectID/{$projectID}'" style="padding:0px;width:100%;height100%;">  
  3.                         <!-- <iframe scrolling="no" id="editProjectFrame" frameborder="0"  src="/Admin/Project/editProject/projectID/{$projectID}" style="width:100%;height:600px;"></iframe>-->  
  4.                         </div>  
  5.                         <div title="Videos" data-options="closable:false,cache:false" style="padding:0px;height: 100%;">  
  6.                             <iframe scrolling="no" id="editVideoFrame" frameborder="0"  src="/Admin/Project/editVideo/projectID/{$projectID}" style="width:100%;height:100%;"></iframe>  
  7.                         </div>  
  8.                     </div>  
设置tab的内容是iframe 
Java代码  
收藏代码
  1. <div title="Tab4 with iframe" data-options="closable:true" style="overflow:hidden">  
  2.             <iframe scrolling="yes" frameborder="0"  src="http://www.jeasyui.com/forum/index.php" style="width:100%;height:100%;"></iframe>  
  3.         </div>  
这种方式是将整个html文件嵌入,包括了html,js,css 而不只是html内容。 
这种方式的优点:用iframe是独立的页面,若已经实现了该页面,基本上不用怎么修改代码。 
缺点:若iframe中的内容高度是动态的,则需要动态调整父窗口的iframe的高度。否则看不到动态新增的内容。 
代码如下 
Java代码  
收藏代码
  1. var iframe = $(window.parent.document).find("#editProjectFrame").eq(0);  
  2.                     $(iframe).css("height",parseInt($(iframe).css("height").substring(0,3)) + 30 + "px");  
tabs的参考资料: 
http://www.easyui.info/archives/164.html 
http://www.easyui.info/archives/501.html 
卸载控件 
Java代码  
收藏代码
  1. currTr.find(".memberList").combobox("destroy");  
所有都是destroy方法。 
6 datetimebox 
datetimebox不像datebox,它没有formate方法可以设置日期格式。只能通过导入locale语言包。来更改日期时间格式。 
若要修改它的格式又要保持繁體。就需要導入zh_TW的js包,並將zh_CN的 
Java代码  
收藏代码
  1. $.fn.datebox.defaults.formatter = function(date){  
  2.         var y = date.getFullYear();  
  3.         var m = date.getMonth()+1;  
  4.         var d = date.getDate();  
  5.         return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d);  
  6.     };  
  7.     $.fn.datebox.defaults.parser = function(s){  
  8.         if (!s) return new Date();  
  9.         var ss = s.split('-');  
  10.         var y = parseInt(ss[0],10);  
  11.         var m = parseInt(ss[1],10);  
  12.         var d = parseInt(ss[2],10);  
  13.         if (!isNaN(y) && !isNaN(m) && !isNaN(d)){  
  14.             return new Date(y,m-1,d);  
  15.         } else {  
  16.             return new Date();  
  17.         }  
  18.     };  
考入對應的位置。 
如設置datetimebox為只讀,也同樣是設置 
$(".datebox :text").attr("readonly","readonly"); 
而不是.datetimebox 
showSeconds="false" 設置不顯示毫秒 
setValue()設置日期 
getValue()取得日期 
datetimebox也有onSelet 事件,选择某个日期时就会触发。当在onSelect中将datetimebox 的值设置为'',再点击的时候存储的值是当前日期。 
7. combobox 
Defines how to load list data when text changed. Set to 'remote' if the combobox loads from server. When set to 'remote' mode, what the user types will be sent as the http request parameter named 'q' to server to retrieve the new data. 
若是remote請求,則會默認帶一個q的request參數。無法更改成其他類型。 
参考: 
http://www.jeasyui.com/documentation/index.php#
分享到: 
 
 | 
  • 2012-10-29 12:32
  • 浏览 5416
  • 分类:

转载于:https://my.oschina.net/xiaohelong/blog/366842

你可能感兴趣的文章
《Java语言导学(原书第6版)》一一1.5 问题和练习:快速入门
查看>>
200多位阿里工程师齐聚“光明顶”,双11模拟演习怎么搞?
查看>>
去年3545款恶意App遭下架
查看>>
雅虎宣布关闭旗下7个数字杂志
查看>>
骗子防不胜防,我们该如何安全上网?
查看>>
如何编写服务器文档记录
查看>>
白帽渗透测试的36条军规
查看>>
IT员工应该向谁汇报工作,CFO or CEO?
查看>>
《高性能Linux服务器构建实战》——2.1节初识Varnish
查看>>
SimpliSafe安防系统存高危漏洞:窃贼可轻易攻破
查看>>
阿里巴巴首次提出智慧建筑,技术与创新的新巅峰
查看>>
自定义Unity对象生命周期管理集成ADO.NET Entity Framework
查看>>
对于坐拥海量数据的金融企业来说,大数据治理意味着什么?
查看>>
冷眼看移动应用商店发展:再不求变只有死路一条
查看>>
希捷发布世界最薄、最快2TB硬盘:7毫米
查看>>
社交软件这样赚钱:line表情包卖了2亿多美元
查看>>
公共交通伸展城市智慧
查看>>
Gartner:2017年应用和基础设施中间件软件市场收入将突破270亿美元
查看>>
C# 创建网站 无法启动与停止的问题
查看>>
云计算市场竞争激烈 亚马逊微软IBM阿里业绩亮眼
查看>>