jQueryEasyUI--傳統前端框架“重溫記”

寫在前面:jQuery EasyUI 是一個基于 jQuery 的前端ui框架,集成了各種用戶界面插件。可能有些同學覺得都什么年代了這個應該快被淘汰了,但不可否認的是仍有許多it公司用jQueryEasyUI來快速開發后臺管理系統,因為相較與一些mvvm框架構建的ui系統jQuery EasyUI兼容性更好,適合一些兼容性較高的場景使用,也非常適合一些主要從事后端工作的同學快速搭建前端頁面。同時它提供建立現代化的具有交互性的 javascript 應用的必要的功能,使用 easyui,不需要寫太多 javascript 代碼,一般情況下只需要使用一些 html 標記來定義用戶界面。

一.jQuery EasyUI快速入門demo

首先先下載easyui
然后直接上代碼:

<html>
<head>
<link rel="stylesheet" type="text/css" href="css/easyui.css">
<link rel="stylesheet" type="text/css" href="css/icon.css">
<script src="http://cdn.bootcss.com/jquery/2.2.4/jquery.js"></script>
<script src="jquery.easyui.min.js"></script>
</head>
<body>
  <div class='easyui-draggable'>拖動<div>
</body>
</html>

只要一行代碼easyui-draggable這個div元素就能實現鼠標拖動效果了。

二.jQuery EasyUI優缺點
 jQuery EasyUI為提供了大多數UI控件的使用,如:accordion,combobox,menu,dialog,tabs,validatebox,datagrid,window,tree等等。jQuery EasyUI是基于JQuery的一個前臺ui界面的插件,功能相對沒extjs強大,但頁面也是相當好看的,同時頁面支持各種themes以滿足使用者對于頁面不同風格的喜好。一些功能也足夠開發者使用,相對于extjs更輕量。
jQuery EasyUI特點:

1.基于jquery用戶界面插件的集合;
2.為一些當前用于交互的js應用提供必要的功能;
3.EasyUI支持兩種渲染方式分別為javascript方式(如:4.$('#p').panel({...}))和html標記方式(如:class="easyui-panel");
5.支持HTML5(通過data-options屬性);
6.開發產品時可節省時間和資源;
7.簡單,但很強大;
8.支持擴展,可根據自己的需求擴展控件;
9.目前各項不足正以版本遞增的方式不斷完善.

二.jQuery EasyUI基礎組件

1.Draggable
 通過標簽創建一個可拖動的元素。需要給標簽添加一個class類,值為easyui-draggable.

<div id="dd" class="easyui-draggable" data-options="handle:'#title'" style="width:100px;height:100px;">    <div id="title" style="background:#ccc;">title</div></div>

也可以通過javascript來創建。

<div id="dd" style="width:100px;height:100px;"> 
<div id="title" style="background:#ccc;">title</div> 
</div> 
$('#dd').draggable({ 
handle:'#title' 
}); 

draggable的一個重要屬性proxy,在拖動的時候使用的代理元素,當使用'clone'的時候,將使用該元素的一個復制元素來作為替代元素。如果指定了一個函數,它將返回一個jquery對象。

$('#dd2').draggable({  // 克隆一個元素讓它可以移動
        proxy:'clone'
    });
$('#dd3').draggable({
        proxy:function(source){
            var p = $('<div class="proxy">proxy</div>');
            p.appendTo('body');
            return p;
        }
    });

2.Droppable
  通過標簽創建一個可放置的元素。需要給標簽添加一個class類,值為easyui-droppable。

<div id="dd" class="easyui-droppable" data-options="accept:'#d1,#d3'" style="width:100px;height:100px;"></div>

也可以通過javascript創建。

<div id="dd" style="width:100px;height:100px;"></div>
$('#dd').droppable({ 
accept:'#d1,#d3'  //可以接受d1、d3
}); 

3.SearchBox
 搜索框提示用戶需要輸入搜索的值。它可以結合一個菜單,允許用戶選擇不同的搜索類別。在用戶按下回車鍵或點擊組件右邊的搜索按鈕的時候會執行搜索操作。

![運行結果.png . . .]

1. 使用標簽創建。添加'easyui-searchbox'類到< input >標簽。

<input id="ss" class="easyui-searchbox" style="width:300px" 
    data-options="searcher:qq,prompt:'Please Input Value'"></input> 

2.通過javascript創建

<input id="ss"></input> 
<div id="mm" style="width:120px"> 
<div data-options="name:'all',iconCls:'icon-ok'">All News</div> 
<div data-options="name:'sports'">Sports News</div> 
</div> 
$('#ss').searchbox({ 
searcher:function(value,name){ 
alert(value + "," + name) 
}, 
menu:'#mm', 
prompt:'Please Input Value' 
}); 

我們可以通過它的setValue與getValue來設置或都返回一個搜索值。

$('#ss').searchbox('setValue','123');
$('#ss').searchbox('getValue',"");

4.Resizable
  我們通過給< div >標簽添加class="easyui-resizable" 屬性來創建一個可以調整大小的窗口。

<div id="rr" class="easyui-resizable" data-options="maxWidth:800,maxHeight:600" style="width:100px;height:100px;border:1px solid #ccc;"></div> 

也可以通過javascript來創建。

<div id="rr" style="width:100px;height:100px;border:1px solid #ccc;"></div> 
$('#rr').resizable({ 
maxWidth:800,  //當調整大小時候的最大寬度
maxHeight:600  //當調整大小時候的最大高度
}); 

5.pagination
  分頁控件允許用戶導航頁面的數據。它支持頁面導航和頁面長度選擇的選項設置。用戶可以在分頁控件上添加自定義按鈕,以增強其功能。

image.png

分頁控件可以通過標簽來創建,我們通過設置< div >標簽的class=‘easyui-pagination’來創建。

<div id="pp" class="easyui-pagination" data-options="total:2000,pageSize:10" style="background:#efefef;border:1px solid #ccc;"></div> 

我們更多的是通過javascript來創建。

<div id="pp" style="background:#efefef;border:1px solid #ccc;"></div> 
$('#pp').pagination({ 
total:2000,   //總記錄數,在分頁控件創建時初始的值。
pageSize:10  //頁面大小
}); 

6.ProgressBar
進度條提供了一個反饋顯示一個長時間運行的操作進展。可以更新的進展條,讓用戶知道當前正在執行操作。

創建進度條比較簡單,可以用下面的兩種方式來創建。

1.從標簽創建更加簡單,添加'easyui-progressbar'類到< div >標簽。

<div id="p" class="easyui-progressbar" data-options="value:60" style="width:400px;"></div> 
  2.使用Javascript創建進度條。

<div id="p" style="width:400px;"></div> 
$('#p').progressbar({ 
value: 60 
}); 

獲取當前值和設置一個新的值到進度條控件。

var value = $('#p').progressbar('getValue');  //獲取進度條的值
if (value < 100){ 
    value += Math.floor(Math.random() * 10); 
    $('#p').progressbar('setValue', value);  //設置進度條的值
} 

7.Tooltip
 當用戶將鼠標移動到元素上的時候,將會顯示一個消息提示框。提示框的內容可以是頁面中任何一個HTML元素或者通過Ajax發送后臺請求以獲取提示框內容。

1.通過標簽創建提示框,給元素添加一個"easyui-tooltip"的類名,無需任何Javascript代碼。

<a href="javascript:void(0)" title="This is the tooltip message." class="easyui-tooltip">Hover me</a>

2.通過Javascript創建提示框。

<a id="dd" href="javascript:void(0)">Click here</a>
$('#dd').tooltip({    
      position: 'right',   //顯示的位置 
      content: '<span style="color:#fff">This is the tooltip message.</span>',   // 顯示的內容 
      onShow: function(){        
          $(this).tooltip('tip').css({            
                  backgroundColor: '#666',            
                  borderColor: '#666'        
           });    
}});

8.綜合案例
 我們這一節的課的主要內容講的是實現對學校課程表的安排。主要是通過拖放組件來完成。如下圖所示完成后的樣式:

課程表格.png

首先我們先來實現學校所有的課程:

<div class="left">
            <table>
                <tr><td><div class="item">English</div></td></tr>
                <tr><td><div class="item">Science</div></td></tr>
                <tr><td><div class="item">Music</div></td></tr>
                <tr><td><div class="item">History</div></td></tr>
                <tr><td><div class="item">Computer</div></td></tr>
                <tr><td><div class="item">Mathematics</div></td></tr>
                <tr><td><div class="item">Arts</div></td></tr>
                <tr><td><div class="item">Ethics</div></td></tr>
            </table>
        </div>

顯示時間表

<div class="right">
            <table>
                <tr>
                    <td class="blank"></td>
                    <td class="title">Monday</td>
                    <td class="title">Tuesday</td>
                    <td class="title">Wednesday</td>
                    <td class="title">Thursday</td>
                    <td class="title">Friday</td>
                </tr>
                <tr>
                    <td class="time">08:00</td>
                    <td class="drop"></td>
                    <td class="drop"></td>
                    <td class="drop"></td>
                    <td class="drop"></td>
                    <td class="drop"></td>
                </tr>
                <tr>
                    <td class="time">09:00</td>
                    <td class="drop"></td>
                    <td class="drop"></td>
                    <td class="drop"></td>
                    <td class="drop"></td>
                    <td class="drop"></td>
                </tr>
                <!-.............-->
            </table>
        </div>

拖動在左側的學??颇?/p>

$('.left .item').draggable({
        revert:true,
        proxy:'clone'
    });

放置學??颇吭跁r間表單元格上

$('.right td.drop').droppable({
        onDragEnter:function(){
            $(this).addClass('over');
        },
        onDragLeave:function(){
            $(this).removeClass('over');
        },
        onDrop:function(e,source){
            $(this).removeClass('over');
            if ($(source).hasClass('assigned')){
                $(this).append(source);
            } else {
                var c = $(source).clone().addClass('assigned');
                $(this).empty().append(c);
                c.draggable({
                    revert:true
                });
            }
        }
    });

三.菜單和按鈕

1.Menu
  菜單組件通常用于快捷菜單。他是構建其他菜單組件的必備基礎組件。

通過標簽創建菜單,給< div >標簽添加一個名為'easyui-menu'的類。每個菜單項都通過< div >標簽創建。我們可以添加'iconCls'屬性來給菜單項定義一個圖標顯示到菜單項的左側。添加'menu-sep'類菜單項將會生成一個菜單分割線。如下代碼:

<div id="mm" class="easyui-menu" style="width:120px;">
<div onclick="javascript:alert('new')">New</div>
<div>
<span>Open</span>
<div style="width:150px;">
<div><b>Word</b></div>
<div>Excel</div>
<div>PowerPoint</div>
</div>
</div>
<div icon="icon-save">Save</div>
<div class="menu-sep"></div>
<div>Exit</div>
</div>
  當菜單創建之后是不顯示的,調用 'show' 方法顯示它或者調用 'hide' 方法隱藏它。

如下代碼:

$('#mm').menu('show', {
left: 200,
top: 100
});
  如下圖效果:

運行結果.png

2.LinkButton
  通常情況下,使用 < button > 元素來創建按鈕,而鏈接按鈕(LinkButton)則是使用 < a > 元素來創建的。所以實際上一個鏈接按鈕(LinkButton)就是一個顯示為按鈕樣式的 < a > 元素。


  為了創建鏈接按鈕(LinkButton),我們要做的就是添加一個名為 'easyui-linkbutton' 的 class 屬性到 < a > 元素。
<a id="btn" href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-search'">easyui</a>

也可以使用Javascript創建按鈕。
<a id="btn" href="javascript:void(0)">easyui</a>
$('#btn').linkbutton({
iconCls: 'icon-search'
});

可以通過jquery來綁定按鈕事件。

$(function(){ 
 $('#btn').bind('click', function(){ 
 alert('easyui'); 
 }); 
}); 

  也可以通過*disable*與*enable*來禁用或啟用按鈕。
$('#btn').linkbutton('disable'); //禁用按鈕
$('#btn').linkbutton('enable'); //啟用按鈕

3.MenuButton

 菜單按鈕(Menu Button)包含一個按鈕(button)和一個菜單(menu)組件,當點擊或移動鼠標到按鈕上,將顯示一個對應的菜單。

![運行結果.png](http://upload-images.jianshu.io/upload_images/6344593-cae9cb5b22f85ee5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

為了定義一個菜單按鈕(Menu Button),您應該定義一個鏈接按鈕(Link Button)和一個菜單(menu),如下代碼:

<a href="javascript:void(0)" id="mb" class="easyui-menubutton"     
        data-options="menu:'#mm',iconCls:'icon-edit'">Edit</a>   
<div id="mm" style="width:150px;">   
    <div data-options="iconCls:'icon-undo'">Undo</div>   
    <div data-options="iconCls:'icon-redo'">Redo</div>   
    <div class="menu-sep"></div>   
    <div>Cut</div>   
    <div>Copy</div>   
    <div>Paste</div>   
    <div class="menu-sep"></div>   
    <div data-options="iconCls:'icon-remove'">Delete</div>   
    <div>Select All</div>   
</div> 

也可以使用javascript創建菜單按鈕。如下代碼:

<a href="javascript:void(0)" id="mb">Edit</a>   
<div id="mm" style="width:150px"> 
  <div>Cut</div>   
  <div>Copy</div>   
  <div>Paste</div>
  <!--........-->
</div> 

js代碼如下:

$('#mb').menubutton({    
    iconCls: 'icon-edit',    
    menu: '#mm'   
}); 

4.Split Button

分割按鈕(Split Button)包含一個鏈接按鈕(Link Button)和一個菜單(Menu)。當用戶點擊或者鼠標懸停在向下箭頭區域,將會顯示一個對應的菜單。

運行結果.png

使用標簽創建分割按鈕。

<a href="javascript:void(0)" id="sb" class="easyui-splitbutton"   
        data-options="menu:'#mm',iconCls:'icon-ok'" onclick="javascript:alert('ok')">Ok</a>   
<div id="mm" style="width:100px;">   
    <div data-options="iconCls:'icon-ok'">Ok</div>   
    <div data-options="iconCls:'icon-cancel'">Cancel</div>   
</div>  

使用Javascript創建分割按鈕。

<a href="javascript:void(0)" id="sb" onclick="javascript:alert('ok')>Ok</a>   
<div id="mm" style="width:100px;">   

...
</div>

$('#sb').splitbutton({    
    iconCls: 'icon-ok',    
    menu: '#mm'   
}); 

三.布局

1.panel
面板作為承載其它內容的容器。這是構建其他組件的基礎(比如:layout,tabs,accordion等)。它還提供了折疊、關閉、最大化、最小化和自定義行為。面板可以很容易地嵌入到web頁面的任何位置。

運行結果.png

下面就來介紹一下如何創建面板:

1. 通過標簽創建面板

通過標簽創建更簡單。添加'easyui-panel'類到< div >標簽。

<div id="p" class="easyui-panel" title="My Panel"     
        style="width:500px;height:150px;padding:10px;background:#fafafa;"   
        data-options="iconCls:'icon-save',closable:true,    
                collapsible:true,minimizable:true,maximizable:true">   
    <p>panel content.</p>   
    <p>panel content.</p>   
</div>  

2. js創建面板與它右上角的工具欄

<div id="p" style="padding:10px;">    
    <p>panel content.</p>    
    <p>panel content.</p>    
</div>    
$('#p').panel({    
  width:500,    
  height:150,    
  title: 'My Panel',    
  tools: [{    
    iconCls:'icon-add',    
    handler:function(){alert('new')}    
  },{    
    iconCls:'icon-save',    
    handler:function(){alert('save')}    
  }]    
});   

可以通過調用'move'方法移動面板到新的位置。

$('#p').panel('move',{    
  left:100,    
  top:100    
});

2.tabs

選項卡顯示一批面板。但在同一個時間只會顯示一個面板。每個選項卡面板都有頭標題和一些小的按鈕工具菜單,包括關閉按鈕和其他自定義按鈕。

運行結果.png

我們可以通過以下方法來創建tabs
  1. 通過標簽創建選項卡
  通過標簽可以更容易的創建選項卡,我們不需要寫任何Javascript代碼。只需要給< div >標簽添加一個類'easyui-tabs'。每個選項卡面板都通過子< div >標簽進行創建,用法和panel(面板)相同。

<div id="tt" class="easyui-tabs" style="width:500px;height:250px;"> 
 <div title="Tab1" style="padding:20px;"> 
 tab1 
 </div> 
 <div title="Tab2" data-options="closable:true" style="overflow:auto;padding:20px;"> 

tab2

 </div> 
 <div title="Tab3" data-options="iconCls:'icon-reload',closable:true" style="padding:20px;"> 
 tab3 
 </div> 
</div> 

2. 通過Javascript創建選項卡
  下面的代碼演示如何使用Javascript創建選項卡,當該選項卡被選擇時將會觸發'onSelect'事件。

$('#tt').tabs({ 
 border:false, 
 onSelect:function(title){ 
 alert(title+' is selected'); 
 } 
}); 

添加新的選項卡面板
  以下代碼是添加一個新的選項卡,并添加一個菜單圖標。

$('#tt').tabs('add',{ 
 title:'New Tab', 
 content:'Tab Body', 
 closable:true, 
 tools:[{ 
 iconCls:'icon-mini-refresh', 
 handler:function(){ 
 alert('refresh'); 
 } 
 }] 
}); 

獲取選擇的選項卡
  我們可以通過以下方法獲取選項卡,如下代碼:

// get the selected tab panel and its tab object 
var pp = $('#tt').tabs('getSelected'); 
var tab = pp.panel('options').tab; // the corresponding tab object 

關于選項卡的屬性與方法還有很多,有興趣的同學請看官網這里。

3.Accordion
  折疊面板(Accordion)包含一系列的面板(panel)。 所有面板(panel)的頭部(header)都是可見的,但是一次僅僅顯示一個面板(panel)的 body 內容。 當用戶點擊面板(panel)的頭部(header)時,該面板(panel)的 body 內容將可見,同時其他面板(panel)的 body 內容將隱藏不可見。

運行結果.png

  通過標簽創建折疊面板,給< div >標簽添加一個名為'easyui-accordion'的類。

<div id="aa" class="easyui-accordion" style="width:300px;height:200px;"> 
 <div title="Title1" data-options="iconCls:'icon-save'" style="overflow:auto;padding:10px;"> 
 <h3 style="color:#0099FF;">Accordion for jQuery</h3> 
 <p>Accordion is a part of easyui framework for jQuery. 
 It lets you define your accordion component on web page more easily.</p> 
 </div> 
 <div title="Title2" data-options="iconCls:'icon-reload',selected:true" style="padding:10px;"> 
 content2 
 </div> 
 <div title="Title3"> 
 content3 
 </div> 
</div> 

我們可以調用'getSelected'方法獲取當前面板,此外我們還可以調用'refresh'方法重新載入新內容。

var pp = $('#aa').accordion('getSelected'); // 獲取選擇的面板 
if (pp){ 
 pp.panel('refresh','new_content.php'); // 調用'refresh'方法刷新 
} 

關于折疊面板的屬性與方法還有很多,有興趣的同學請看這里

3.邊框布局

邊框布局(border layout)提供五個區域:east、west、north、south、center。以下是一些通常用法:

north 區域可以用來顯示網站的標語。
south 區域可以用來顯示版權以及一些說明。
west 區域可以用來顯示導航菜單。
east 區域可以用來顯示一些推廣的項目。
center 區域可以用來顯示主要的內容。

運行結果.png

1. 通過標簽創建布局
  為< div >標簽增加名為'easyui-layout'的類。

<div id="cc" class="easyui-layout" style="width:600px;height:400px;"> 
 <div data-options="region:'north',title:'North Title',split:true" style="height:100px;"></div> 
 <div data-options="region:'south',title:'South Title',split:true" style="height:100px;"></div> 
 <div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width:100px;"></div> 
 <div data-options="region:'west',title:'West',split:true" style="width:100px;"></div> 
 <div data-options="region:'center',title:'center title'" style="padding:5px;background:#eee;"></div> 
</div>

2. 使用完整頁面創建布局

<body class="easyui-layout"> 
 <div data-options="region:'north',title:'North Title',split:true" style="height:100px;"></div> 
 <div data-options="region:'south',title:'South Title',split:true" style="height:100px;"></div> 
 <div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width:100px;"></div> 
 <div data-options="region:'west',title:'West',split:true" style="width:100px;"></div> 
</body> 

3. 創建嵌套布局
  嵌套在內部的布局面板的左側面板是折疊的。

<body class="easyui-layout"> 
 <div data-options="region:'north'" style="height:100px"></div> 
 <div data-options="region:'center'"> 
 <div class="easyui-layout" data-options="fit:true"> 
 <div data-options="region:'west',collapsed:true" style="width:180px"></div> 
 <div data-options="region:'center'"></div> 
 </div> 
 </div> 
</body> 

我們可以用以下方法折疊布局面板

$('#cc').layout(); 
// collapse the west panel 
$('#cc').layout('collapse','west'); 

如下js代碼添加西側區域面板和工具菜單按鈕。

$('#cc').layout('add',{ 
 region: 'west', 
 width: 180, 
 title: 'West Title', 
 split: true, 
 tools: [{ 
 iconCls:'icon-add', 
 handler:function(){alert('add')} 
 },{ 
 iconCls:'icon-remove', 
 handler:function(){alert('remove')} 
 }] 
}); 

關于布局面板的屬性與方法還有很多,我們就不多做介紹了,有興趣的同學請看這里。

四.表單

1.ValidateBox

validatebox(驗證框)的設計目的是為了驗證輸入的表單字段是否有效。如果用戶輸入了無效的值,它將會更改輸入框的背景顏色,并且顯示警告圖標和提示信息。

運行結果.png

通過標簽創建驗證框。 為< input >標簽增加名為'easyui-validatebox'的類。

<input id="vv" class="easyui-validatebox" data-options="required:true,validType:'email'" /> 

使用Javascript創建驗證框。

<input id="vv" /> 
<script>
$('#vv').validatebox({ 
 required: true, 
 validType: 'email' 
}); 
</script>

驗證規則
  驗證規則是根據使用需求和驗證類型屬性來定義的,這些規則已經實現:
email:匹配E-Mail的正則表達式規則。
url:匹配URL的正則表達式規則。
length[0,100]:允許在x到x之間個字符。
remote['http://.../action.do','paramName']:發送ajax請求需要驗證的值,當成功時返回true。

自定義驗證規則,需要重寫$.fn.validatebox.defaults.rules中定義的驗證器函數和無效消息。例如,定義一個最小長度(minLength)的自定義驗證:

$.extend($.fn.validatebox.defaults.rules, { 
 minLength: { 
 validator: function(value, param){ 
 return value.length >= param[0]; 
 }, 
 message: 'Please enter at least {0} characters.' 
 } 
}); 

現在就可以在輸入框中限制最小長度為5的自定義最小長度驗證了:
<input class="easyui-validatebox" data-options="validType:'minLength[5]'">

關于validatebox的屬性與方法還有很多,有興趣的同學請看這里。

2.ComboBox

下拉列表框顯示一個可編輯文本框和下拉式列表,用戶可以選擇一個值或多個值。用戶可以直接輸入文本到列表頂部或選擇一個或多個當前列表中的值。

運行結果.png

下面我們就來介紹一下如何創建下拉列表框:
  1.通過< select >元素創建一個預定義結構的下拉列表框。我們要給該元素添加一個“easyui-combobox”的類。**

<select id="cc" class="easyui-combobox" name="dept" style="width:200px;"> 
 <option value="aa">aitem1</option> 
 <option>bitem2</option> 
 <option>bitem3</option> 
 <option>ditem4</option> 
 <option>eitem5</option> 
</select> 

2.通過< input >標簽創建下拉列表框。我們要給該元素添加一個“easyui-combobox”的類。**
<input id="cc" class="easyui-combobox" name="dept"
data-options="valueField:'id',textField:'text',url:'get_data.php'" />

3.通過javascript創建下拉列表框。

<input id="cc" name="dept" value="aa"> 
$('#cc').combobox({ 
 url:'combobox_data.json', 
 valueField:'id', 
 textField:'text' 
}); 

我們可以通過setValue設置組件的值,可以通過setText設置輸入的文本,可以通過getValuegetText獲取組件的值與輸入的文本。
$('#cc').combobox('setValue',12); //設置值
$('#cc').combobox('getText',''); // 獲取輸入文本

關于combobox的屬性與方法還有很多,有興趣的同學請看這里。

3.Combo

自定義下拉框顯示一個可編輯的文本框和下拉面板在html頁面。

運行結果.png

自定義下拉框使用Javascript創建一個< select >或< input >元素。

<input id="cc" value="001">
$('#cc').combo({    
    required:true,    
    multiple:true   
}); 

我們可以通過setValue設置組件的值,可以通過setText設置輸入的文本,可以通過getValue與getText獲取組件的值與輸入的文本。

$('#cc').combo('setValue',12);  //設置值
$('#cc').combo('getText','');   // 獲取輸入文本

3.ComboTree

樹形下拉框結合選擇控件和下拉樹控件。它與combobox(下拉列表框)類似,但是將下拉列表框的列表替換成了樹形控件。該控件支持樹狀態復選框,方便多選操作。

運行結果.png

有兩種方法可以創建下拉樹控件。
  1.使用標簽創建樹形下拉框。要為該元素添加easyui-combotree的類。

<select id="cc" class="easyui-combotree" style="width:200px;" 
 data-options="url:'get_data.php',required:true"></select> 

2.使用Javascript創建樹形下拉框。

<input id="cc" value="01"> 
$('#cc').combotree({ 
 url: 'get_data.php', 
 required: true 
}); 

這其中的url為遠程數據的鏈接。
我們可以通過loadData方法來初始化樹形下拉框:

$('#cc').combotree('loadData', [{
 id: 1,
 text: 'Languages',
 children: [{
 id: 11,
 text: 'Java'
 },{
 id: 12,
 text: 'C++'
 }]
}]);

關于comboTree的屬性與方法還有很多,有興趣的同學請看這里

4.DateBox

日期輸入框結合了一個可編輯的文本框控件和允許用戶選擇日期的下拉日歷面板控件。選擇的日期會自動轉變為一個有效的日期然后填充到文本框中。選定的日期也可以被格式化為預定格式。

運行結果.png

有兩種方式可以創建日期輸入框:

1.使用標簽創建日期輸入框。我們要為input標簽添加一個“easyui-datebox”的類。

<input id="dd" type="text" class="easyui-datebox" required="required"></input>  

2.使用Javascript創建日期輸入框。

<input id="dd" type="text"></input> 
$('#dd').datebox({    
    required:true   
}); 

我們可以通過"setValue"方法來設置datebox的值,通過“getValue”獲取datebox的值。

$('#dd').datebox('setValue','01/01/2016'); 
$('#dd').datebox('getValue',''); 

5.DateTimeBox

和日期輸入框類似,日期時間輸入框允許用戶選擇日期和指定的時間并按照指定的輸出格式顯示。相比日期輸入框,它在下拉面板中添加了一個時間微調器。

運行結果.png

datetimebox的創建方法與datebox類似,也有兩種方法,

1.使用標簽創建日期時間輸入框。我們要為input標簽添加一個“easyui-datetimebox”的類。

<input class="easyui-datetimebox" name="birthday"     
        data-options="required:true,showSeconds:false" value="3/4/2010 2:3" style="width:150px">  

2.使用Javascript創建日期時間輸入框。

<input id="dt" type="text" name="birthday"></input> 
$('#dt').datetimebox({    
    value: '3/4/2010 2:3',    
    required: true,    
    showSeconds: false   
});  

我們可以通過"setValue"方法來設置datetimebox的值,通過“getValue”獲取datetimebox的值。

$('#dt').datetimebox('setValue','01/01/2016 12:00:00'); 
$('#dt').datetimebox('getValue',''); 

6.Calendar

日歷控件顯示一個月的日歷,允許用戶選擇日期和移動到下一個或上一個月。默認情況下,一周的第一天是周日。它可以通過設置'firstDay'屬性的值來更改設置。

運行結果.png

 使用標簽創建日歷。我們需要將< div >標簽的類的值設置為easyui-calendar。

<div id="cc" class="easyui-calendar" style="width:180px;height:180px;"></div>  

使用Javascript創建日歷。

<div id="cc" style="width:180px;height:180px;"></div>  
$('#cc').calendar({
    current:new Date()
});

7.TimeSpinner

時間微調組件允許用戶點擊組件右側的小按鈕來增加或減少時間。

通過input標簽來創建,需要我們將它的class屬性值設置為easyui-timespinner。

<input id="ss" class="easyui-timespinner"  style="width:80px;"   
        required="required" data-options="min:'08:30',showSeconds:true" />  

還可以通過Javascript創建時間微調組件。

<input id="ss" style="width:80px;">  
$('#ss').timespinner({    
    min: '08:30',    
    required: true,    
    showSeconds: true   
}); 

設置時間微調組件的值。 代碼如下:

$('#ss').timespinner('setValue', '17:45');  // 設置時間微調組件的值
var v=$('#ss').timespinner('getValue');  // 獲取時間微調組件的值
alert(v);

8.Slider

滑動條允許用戶從一個有限的范圍內選擇一個數值。當滑塊控件沿著軌道移動的時候,將會顯示一個提示來表示當前值。用戶可以通過設置其屬性自定義滑塊。

運行結果.png

我們使用< input >標簽來創建滑動條,設置它的class屬性為easyui-slider。

<input class="easyui-slider" value="12" style="width:300px"
data-options="showTip:true,rule:[0,'|',25,'|',50,'|',75,'|',100]" />
  也允許使用< div >創建滑動條,但是'value'屬性是無效的。

<div class="easyui-slider" data-options="min:10,max:90,step:10" style="width:300px"></div>  

還可以使用javascript來創建。

<div id="ss" style="height:200px"></div>  
$('#ss').slider({    
    mode: 'v',    
    tipFormatter: function(value){    
        return value + '%';    
    }    
}); 

我們可以通過"setValue"方法來設置slider的值,通過“getValue”獲取slider的值。

$('#ss').slider('setValue',25); 
$('#ss').slider('getValue',''); 

還有一個常用的onchange事件,在值發生變化時觸發。

$('#ss').slider({    
    mode: 'v',     // 設置水平h 還是垂直v
    tipFormatter: function(value){    //格式化滑動條
        return value + '%';    
    },
    onChange: function(value){
        alert(value);
    }
}); 

另外還可以通過max與min屬性設置滑動條的最大與最小值。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容

  • 內容抽屜菜單ListViewWebViewSwitchButton按鈕點贊按鈕進度條TabLayout圖標下拉刷新...
    皇小弟閱讀 46,868評論 22 665
  • 1.從載入EasyUI開始 讀者需要到EasyUI官網中下載包含原文件和demo的壓縮包,并解壓到之前編寫的代碼目...
    老皮丘閱讀 1,733評論 0 6
  • 第5章 菜單、按鈕及導航 一、下拉菜單 小伙伴們注意,在Bootstrap框架中的下拉菜單組件是一個獨立的組件,根...
    凜0_0閱讀 5,041評論 0 66
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,177評論 4 61
  • 我的爸爸是一名特警,每天的工作特別多。盡管這樣,他還是抽空就伴我。 當我爸爸一回家我就看見爸爸已經快蒼白的頭發,我...
    籃球手閱讀 241評論 0 0