JQuery EasyUI(22)

                           第二十二章:Combo(自定义下拉框)组件

学习要点:

  1. 加载方式
  2. 属性列表
  3. 方法列表
  4. 方法列表

一、加载方式:

1.自定义下拉框不能通过标签的方式进行创建。

<!DOCTYPE html>
<html>
  <head>
    <title>JQuery Easy UI</title>
    <meta charset="utf-8"/>
    <script type="text/javascript" src="easyui/jquery.min.js"></script>
    <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>     
    <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>     
    <script type="text/javascript" src="js/index.js"></script> 
    <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css"/>
    <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css"/>              
</head>
  <body>
    <input id="box">
 </body>
</html>
 


2.JS加载调用:
如果要实现自定义下来选择(图片、文本、按钮均可),需要配合一些代码。

<!DOCTYPE html>
<html>
  <head>
    <title>JQuery Easy UI</title>
    <meta charset="utf-8"/>
    <script type="text/javascript" src="easyui/jquery.min.js"></script>
    <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>     
    <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>     
    <script type="text/javascript" src="js/index.js"></script> 
    <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css"/>
    <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css"/>              
</head>
  <body>
    <input id="box">
    <div  id="food">
      <div style="backgroup:#eee;padding:5px;">请选择一个食物</div>
      <div style="padding:5px;">
          <input type="redio" name="food" value="01"><span>煎饼果子</span><br>
          <input type="redio" name="food" value="02"><span>水果沙拉</span><br>
          <input type="redio" name="food" value="03"><span>牛腩米线</span><br>
          <input type="redio" name="food" value="04"><span>蛋黄派果</span><br>
          <input type="redio" name="food" value="05"><span>其他</span><br>
      </div>
    </div>
 </body>
</html>
 
$(function(){

  $("#box").combo({
     required:true,
  });
   $('#food').appendTo($('#box').combo('panel'));
   $('#food input').click({
     var v = $(this).val();
     var s = $(this).next('span').text();
     $('#box').combo('setValue',v).combo('setValue',s).combo(hidePanel);
  });
});

 

二、属性列表:

Combo属性,扩展自ValidateBox属性
属性名说明
width number组件的宽度。默认值auto。
heightnumber组件的高度。默认值22。
panelWidthnumber下拉面板宽度。默认值null。
panelHeightnumber下拉面板高度。默认值22。
multipleboolean定义是否支持多选。默认值false。
selectOnNavigationboolean定义是否允许使用键盘导航来选择项目。默认值true。
separatorstring在多选的时候使用何种分离符进行分割。默认值‘,’。
editableboolean定义用户是否可以直接输入文本到字段中。默认值true。
disabledboolean设置启用/禁用字段。默认值false。
hasDownArrowboolean定义是否显示向下箭头按钮。默认值true。
valuestring字段的默认值。
delaynumber最后一次输入事件与执行搜索之间的延迟间隔(执行自动完成功能的延迟间隔)默认值200
keyHandlerobject在用户按下键的时候调用一个函数。

PS:这里有些属性无法在单独组件使用中体现它的效果,需要配合整个表单或服务器支持。

 

三、事件列表: 

Combo事件
事件名事件属性说明
onShowPanelnone当下拉面板显示的时候触发。
onHidePanelnone当下拉面板隐藏的时候触发。
onChangenewValue,oldValue 当字段值改变的时候触发。
<!DOCTYPE html>
<html>
  <head>
    <title>JQuery Easy UI</title>
    <meta charset="utf-8"/>
    <script type="text/javascript" src="easyui/jquery.min.js"></script>
    <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>     
    <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>     
    <script type="text/javascript" src="js/index.js"></script> 
    <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css"/>
    <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css"/>              
</head>
  <body>
    <input id="box">
    <div  id="food">
      <div style="backgroup:#eee;padding:5px;">请选择一个食物</div>
      <div style="padding:5px;">
          <input type="redio" name="food" value="01"><span>煎饼果子</span><br>
          <input type="redio" name="food" value="02"><span>水果沙拉</span><br>
          <input type="redio" name="food" value="03"><span>牛腩米线</span><br>
          <input type="redio" name="food" value="04"><span>蛋黄派果</span><br>
          <input type="redio" name="food" value="05"><span>其他</span><br>
      </div>
    </div>
 </body>
</html>
 
$(function(){

  $("#box").combo({
     required:true,
    
   /* 
     width:300,
     height:50,
     panelWidth:300,
     panelHeight:300,
     editable:false,
     disabled:true,
     readonly:true,
     hasDownArrow:false,
     value:'123',
     delay:1000,
     onShowPanel:function(){
       alert('显示触发');
     },
     onHidePanel:function(){
        alert('隐藏触发');
     },
     onChange:function(newValue,oldValue){
       alert(newValue + '|' + oldValue);
    },
  */
    
  });
   $('#food').appendTo($('#box').combo('panel'));
   $('#food input').click({
     var v = $(this).val();
     var s = $(this).next('span').text();
     $('#box').combo('setValue',v).combo('setValue',s).combo(hidePanel);
  });
});

 

四、方法列表: 

Combo方法
方法名传参说明
optionsnone返回属性对象。
panelnone返回下拉面板对象。
textboxnone返回文本框对象。
destorynone销毁该组件。
resizewidth调整组件宽度。
showPanelnone显示下拉面板。
hidePanelnone隐藏下拉面板。
disablenone禁用组件。
enablenone启用组件。
readonlymode启用/禁用只读模式。
validatenone验证输入的值。
isValidatenone返回验证结果。
clearnone清除控件的值。
resetnone重置控件的值。
getTextnone获取输入的文本。
getValuesnone 获取组件值的数组。
setValuesvalue设置组件值的数组。
getValuenone获取组件的值。
setValuevalue设置组件的值。

PS:我们可以使用$.fn.combo.defaults重写默认值对象。

<!DOCTYPE html>
<html>
  <head>
    <title>JQuery Easy UI</title>
    <meta charset="utf-8"/>
    <script type="text/javascript" src="easyui/jquery.min.js"></script>
    <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>     
    <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>     
    <script type="text/javascript" src="js/index.js"></script> 
    <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css"/>
    <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css"/>              
</head>
  <body>
    <input id="box">
    <div  id="food">
      <div style="backgroup:#eee;padding:5px;">请选择一个食物</div>
      <div style="padding:5px;">
          <input type="redio" name="food" value="01"><span>煎饼果子</span><br>
          <input type="redio" name="food" value="02"><span>水果沙拉</span><br>
          <input type="redio" name="food" value="03"><span>牛腩米线</span><br>
          <input type="redio" name="food" value="04"><span>蛋黄派果</span><br>
          <input type="redio" name="food" value="05"><span>其他</span><br>
      </div>
    </div>
 </body>
</html>
 
$(function(){

  $("#box").combo({
     required:true,    
  });

   $('#food').appendTo($('#box').combo('panel'));

   $('#food input').click({
     var v = $(this).val();
     var s = $(this).next('span').text();
     $('#box').combo('setValue',v).combo('setValue',s).combo(hidePanel);
  });
    //console.log($('#box').combo('textbox'));

    $(decument).click(function(){
      $('#box').combo('resize','width');
      $('#box').combo('showPanel');
      console.log($('#box').combo('isValid'));
      console.log($('#box').combo('getText'));
      console.log($('#box').combo('getValue'));
      console.log($('#box').combo('getValues'));
      $('#box').combo('setValue',['1','2','3']);
   });
});

 

作者:Roger_CoderLife

链接:https://blog.csdn.net/Roger_CoderLife/article/details/103004717

本文根据网易云课堂JQuery EasyUI视频教程翻译成文档,转载请注明原文出处,欢迎转载

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值