表单(中)-EasyUI Combogrid 组合网格、EasyUI Numberbox 数字框、EasyUI Datebox 日期框、EasyUI Datetimebox 日期时间框、EasyUI ...

本文详细介绍了 EasyUI 框架中的几个核心组件,包括 combogrid 组合网格、numberbox 数字框和 datebox 日期框等。每个组件都提供了丰富的功能,如自动完成搜索、数字输入控制及日期选择等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EasyUI Combogrid 组合网格

扩展自 $.fn.combo.defaults 和 $.fn.datagrid.defaults。通过 $.fn.combogrid.defaults 重写默认的 defaults。

组合网格(combogrid)把可编辑的文本框和下拉数据网格面板结合起来,用户可以从下拉数据网格面板中快速查找和选择。组合网格(combogrid)提供了选择某个项目的键盘导航支持。

依赖

  • combo
  • datagrid

用法

创建组合网格(combogrid)

1、从标记创建组合网格(combogrid)。

<select id="cc" class="easyui-combogrid" name="dept" style="width:250px;"
    data-options="
    panelWidth:450,
    value:'006',
    idField:'code',
    textField:'name',
    url:'datagrid_data.json',
    columns:[[
    {field:'code',title:'Code',width:60},
    {field:'name',title:'Name',width:100},
    {field:'addr',title:'Address',width:120},
    {field:'col4',title:'Col41',width:100}
    ]]
    "></select>

2、使用 javascript 从已有的 <select> 或 <input> 元素创建。

<input id="cc" name="dept" value="01">
 $('#cc').combogrid({
    panelWidth:450,
    value:'006',
    idField:'code',
    textField:'name',
    url:'datagrid_data.json',
    columns:[[
    {field:'code',title:'Code',width:60},
    {field:'name',title:'Name',width:100},
    {field:'addr',title:'Address',width:120},
    {field:'col4',title:'Col41',width:100}
    ]]
    });
自动完成功能

让我们为组合网格(combogrid)提那家自动完成功能。下拉数据网格将根据用户输入显示可能的结果。

$('#cc').combogrid({
    delay: 500,
    mode: 'remote',
    url: 'get_data.php',
    idField: 'id',
    textField: 'name',
    columns: [[
        {field:'code',title:'Code',width:120,sortable:true},
        {field:'name',title:'Name',width:400,sortable:true}
    ]]
});

在服务器端,'q' 参数必须首先被检索。用户可以查询数据库,然后返回一个 JSON 格式的 sql 结果到浏览器。

get_data.php:

$q = isset($_POST['q']) ? $_POST['q'] : ''; // the request parameter
// query database and return JSON result data
$rs = mysql_query("select * from item where name like '$q%'");
echo json_encode(...);

属性

该属性扩展自组合(combo)和数据网格(datagrid),下面是为组合网格(combogrid)添加的属性。

名称类型描述默认值
loadMsgstring当数据网格(datagrid)加载远程数据时显示的消息。null
idFieldstringid 的字段名。null
textFieldstring显示在文本框中的 text 字段名。null
modestring定义当文本改变时如何加载数据网格(datagrid)数据。如果组合网格(combogrid)从服务器加载就设置为 'remote'。当设置为 'remote' 模式时,用户输入的值将会被作为名为 'q' 的 http 请求参数发送到服务器,以获取新的数据。local
filterfunction(q, row)定义当 'mode' 设置为 'local' 时如何选择本地数据。返回 true 则选择该行。
代码实例:
  1. $('#cc').combogrid({
  2. filter: function(q, row){
  3. var opts = $(this).combogrid('options');
  4. return row[opts.textField].indexOf(q) == 0;
  5. }
  6. });
100

事件

该事件扩展自组合(combo)和数据网格(datagrid)。

方法

该方法扩展自组合(combo),下面是为组合网格(combogrid)添加或重写的方法。

名称参数描述
optionsnone返回选项(options)对象。
gridnone返回数据网格(datagrid)对象。下面的实例显示如何取得选中的行:
  1. var g = $('#cc').combogrid('grid'); // get datagrid object
  2. var r = g.datagrid('getSelected'); // get the selected row
  3. alert(r.name);
setValuesvalues设置组件值的数组。
代码实例:
  1. $('#cc').combogrid('setValues', ['001','007']);
setValuevalue设置组件的值。
代码实例:
  1. $('#cc').combogrid('setValue', '002');
clearnone清除组件的值。
 

EasyUI Numberbox 数字框

扩展自 $.fn.validatebox.defaults。通过 $.fn.numberbox.defaults 重写默认的 defaults。

数字框(numberbox)用于让用户仅能输入数字的值。它可以把输入元素转换为不同类型的输入(比如:数字 numeric、百分比 percentage、货币 currency,等等)。更多的输入类型依赖 'formatter' 和 'parser' 函数来定义。

依赖

  • validatebox

用法

从标记创建数字框(numberbox)。

<input type="text" class="easyui-numberbox" value="100" data-options="min:0,precision:2">

使用 javascript 创建数字框(numberbox)。

<input type="text" id="nn">
$('#nn').numberbox({
    min:0,
    precision:2
});

属性

该属性扩展自验证框(validatebox),下面是为数字框(numberbox)添加的属性。

名称类型描述默认值
disabledboolean定义是否禁用该字段。false
valuenumber默认值。 
minnumber允许的最小值。null
maxnumber允许的最大值。null
precisionnumber显示在小数点后面的最大精度。0
decimalSeparatorstring分隔数字的整数部分和小数部分的分隔字符。.
groupSeparatorstring分隔整数组合的字符。 
prefixstring前缀字符串。 
suffixstring后缀字符串。 
filterfunction(e)定义如何过滤被按下的键,返回 true 则接受输入字符。该属性自版本 1.3.3 起可用。 
formatterfunction(value)用来格式数字框(numberbox)值的函数。返回显示在框中的字符串值。 
parserfunction(s)用来解析字符串的函数。返回数字框(numberbox)值。 

事件

名称参数描述
onChangenewValue,oldValue当字段值改变时触发。

方法

该方法扩展自验证框(validatebox),下面是为数字框(numberbox)添加或重写的方法。

名称参数描述
optionsnone返回选项(options)对象。
destroynone销毁数字框(numberbox)对象。
disablenone禁用该域。
enablenone启用该域。
fixnone把值固定为有效的值。
setValuenone设置数字框(numberbox)的值。
代码实例:
  1. $('#nn').numberbox('setValue', 206.12);
getValuenone获取数字框(numberbox)的值。
代码实例:
  1. var v = $('#nn').numberbox('getValue');
  2. alert(v);
clearnone清除数字框(numberbox)的值。
resetnone重置数字框(numberbox)的值。该方法自版本 1.3.2 起可用。

EasyUI Datebox 日期框

扩展自 $.fn.combo.defaults。通过 $.fn.datebox.defaults 重写默认的 defaults。

日期框(datebox)把可编辑的文本框和下拉日历面板结合起来,用户可以从下拉日历面板中选择日期。在文本框中输入的字符串可悲转换为有效日期。被选择的日期也可以被转换为期望的格式。

依赖

  • combo
  • calendar

用法

从标记创建日期框(datebox)。

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

使用 javascript 创建日期框(datebox)。

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

属性

该属性扩展自组合(combo),下面是为日期框(datebox)添加的属性。

名称类型描述默认值
panelWidthnumber下拉日历面板的宽度。180
panelHeightnumber下拉日历面板的高度。auto
currentTextstring当前日期按钮上显示的文本。Today
closeTextstring关闭按钮上显示的文本。Close
okTextstring确定按钮上显示的文本。Ok
disabledboolean设置为 true 时禁用该域。false
buttonsarray日历下面的按钮。该属性自版本 1.3.5 起可用。
代码实例:
  1. var buttons = $.extend([], $.fn.datebox.defaults.buttons);
  2. buttons.splice(1, 0, {
  3. text: 'MyBtn',
  4. handler: function(target){
  5. alert('click MyBtn');
  6. }
  7. });
  8. $('#dd').datebox({
  9. buttons: buttons
  10. });
 
sharedCalendarstring,selector多个日期框(datebox)组件使用的共享日历。该属性自版本 1.3.5 起可用。
代码实例:
  1. <input class="easyui-datebox" sharedCalendar="#sc">
  2. <input class="easyui-datebox" sharedCalendar="#sc">
  3. <div id="sc" class="easyui-calendar"></div>
null
formatterfunction格式化日期的函数,该函数有一个 'date' 参数,并返回一个字符串值。下面的实例演示如何重写默认的格式化(formatter)函数。
  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 m+'/'+d+'/'+y;
  6. }
 
parserfunction解析日期字符串的函数,该函数有一个 'date' 字符串,并返回一个日期值。下面的实例演示如何重写默认的解析(parser)函数。
  1. $.fn.datebox.defaults.parser = function(s){
  2. var t = Date.parse(s);
  3. if (!isNaN(t)){
  4. return new Date(t);
  5. } else {
  6. return new Date();
  7. }
  8. }
 

事件

名称参数描述
onSelectdate当用户选择一个日期时触发。
代码实例:
  1. $('#dd').datebox({
  2. onSelect: function(date){
  3. alert(date.getFullYear()+":"+(date.getMonth()+1)+":"+date.getDate());
  4. }
  5. });

方法

该方法扩展自组合(combo),下面是为日期框(datebox)重写的方法。

名称参数描述
optionsnone返回选项(options)对象。
calendarnone获取日历(calendar)对象。下面的实例演示如何获取日历(calendar)对象,然后重现它。
  1. // get the calendar object
  2. var c = $('#dd').datebox('calendar');
  3. // set the first day of week to monday
  4. c.calendar({
  5. firstDay: 1
  6. });
setValuevalue设置日期框(datebox)的值。
代码实例:
  1. $('#dd').datebox('setValue', '6/1/2012'); // set datebox value
  2. var v = $('#dd').datebox('getValue'); // get datebox value

EasyUI Datetimebox 日期时间框

扩展自 $.fn.datebox.defaults。通过 $.fn.datetimebox.defaults 重写默认的 defaults。

与日期框(datebox)相似,日期时间框(datetimebox)允许用户选择要显示的带有指定格式的日期和时间的日期和时间。它向下拉面板添加一个时间微调器(timespinner)组件。

依赖

  • datebox
  • timespinner

用法

从标记创建日期时间框(datetimebox)。

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

使用 javascript 创建日期时间框(datetimebox)。

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

属性

该属性扩展自日期框(datebox),下面是为日期时间框(datetimebox)添加的属性。

名称类型描述默认值
showSecondsboolean定义是否显示秒的信息。true
timeSeparatorstring时分秒之间的时间分隔符。该属性自版本 1.3 起可用。:

方法

该方法扩展自日期框(datebox),下面是为日期时间框(datetimebox)重写的方法。

名称参数描述
optionsnone返回选项(options)对象。
spinnernone返回时间微调器(timespinner)对象。
setValuevalue设置日期时间框(datetimebox)的值。
代码实例:
  1. $('#dt').datetimebox('setValue', '6/1/2012 12:30:56'); // set datetimebox value
  2. var v = $('#dt').datetimebox('getValue'); // get datetimebox value
  3. alert(v);

EasyUI Calendar 日历

通过 $.fn.calendar.defaults 重写默认的 defaults。

日历(calendar)显示允许用户选择日期的一个月份日历,并允许移动到上一月和下一页。默认情况下,每星期的第一天设置为星期日。这可以通过设置 'firstDay' 属性的值来改变。

用法

从标记创建日历(calendar)。

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

使用 javascript 创建日历(calendar)。

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

属性

名称类型描述默认值
widthnumber日历(calendar)组件的宽度。180
heightnumber日历(calendar)组件的高度。180
fitboolean当设置为 true 时,则设置日历的尺寸以适应它的父容器。false
borderboolean定义是否显示边框。true
firstDaynumber定义每星期的第一天。星期日(Sunday)是 0,星期一(Monday)是 1,...0
weeksarray显示星期的列表。['S','M','T','W','T','F','S']
monthsarray显示月份的列表。['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
yearnumber日历的年。下面的实例演示如何使用指定的年和月来创建一个日历。
  1. <div class="easyui-calendar" data-options="year:2012,month:6" />
当前年份(4 位)
monthnumber日历的月。当前月份(从 1 开始)
currentDate当前的日期。当前日期

事件

名称参数描述
onSelectdate当用户选择一个日期时触发。
代码实例:
  1. $('#cc').calendar({
  2. onSelect: function(date){
  3. alert(date.getFullYear()+":"+(date.getMonth()+1)+":"+date.getDate());
  4. }
  5. });

方法

名称参数描述
optionsnone返回选项(options)对象。
resizenone调整日历的尺寸。
moveTodate移动日历到一个指定的日期。
代码实例:
  1. $('#cc').calendar('moveTo', new Date(2012, 6, 1));

转载于:https://www.cnblogs.com/jiangxiaobo/p/7115731.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值