第二十二章:Combo(自定义下拉框)组件
学习要点:
- 加载方式
- 属性列表
- 方法列表
- 方法列表
一、加载方式:
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。 |
height | number | 组件的高度。默认值22。 |
panelWidth | number | 下拉面板宽度。默认值null。 |
panelHeight | number | 下拉面板高度。默认值22。 |
multiple | boolean | 定义是否支持多选。默认值false。 |
selectOnNavigation | boolean | 定义是否允许使用键盘导航来选择项目。默认值true。 |
separator | string | 在多选的时候使用何种分离符进行分割。默认值‘,’。 |
editable | boolean | 定义用户是否可以直接输入文本到字段中。默认值true。 |
disabled | boolean | 设置启用/禁用字段。默认值false。 |
hasDownArrow | boolean | 定义是否显示向下箭头按钮。默认值true。 |
value | string | 字段的默认值。 |
delay | number | 最后一次输入事件与执行搜索之间的延迟间隔(执行自动完成功能的延迟间隔)默认值200 |
keyHandler | object | 在用户按下键的时候调用一个函数。 |
PS:这里有些属性无法在单独组件使用中体现它的效果,需要配合整个表单或服务器支持。
三、事件列表:
Combo事件 | ||
---|---|---|
事件名 | 事件属性 | 说明 |
onShowPanel | none | 当下拉面板显示的时候触发。 |
onHidePanel | none | 当下拉面板隐藏的时候触发。 |
onChange | newValue,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方法 | ||
---|---|---|
方法名 | 传参 | 说明 |
options | none | 返回属性对象。 |
panel | none | 返回下拉面板对象。 |
textbox | none | 返回文本框对象。 |
destory | none | 销毁该组件。 |
resize | width | 调整组件宽度。 |
showPanel | none | 显示下拉面板。 |
hidePanel | none | 隐藏下拉面板。 |
disable | none | 禁用组件。 |
enable | none | 启用组件。 |
readonly | mode | 启用/禁用只读模式。 |
validate | none | 验证输入的值。 |
isValidate | none | 返回验证结果。 |
clear | none | 清除控件的值。 |
reset | none | 重置控件的值。 |
getText | none | 获取输入的文本。 |
getValues | none | 获取组件值的数组。 |
setValues | value | 设置组件值的数组。 |
getValue | none | 获取组件的值。 |
setValue | value | 设置组件的值。 |
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视频教程翻译成文档,转载请注明原文出处,欢迎转载