丰富Easyui 的插件 - lookup
插件用途:
主要用于表单中,某字段的内容是用其他表里的记录ID。当然你可以使用combobox、combotree、combogrid等,但有时这些表现方式并不是很好,希望弹出个层,然后在去做一些查询并选取的操作。所以就封装了一下,方便以后使用,不用在写重复的代码。
效果图:

使用方法:
插件使用Easyui 的相关样式,所以使用时需要引入Easyui 的相关脚本及样式。
var lu = $('#txt_ParentId').lookup({
title: '选择上级区域',
dialog: {
content: '<ul id=ptree></ul>',
height: 400,width:300,
onOpen:function() {
$('#ptree').tree({
url: actionUrl,
data: $('#areatree').tree('getData'),
onClick: function(node) {
lu.lookup('setValue', node.id).lookup('setText', node.text);
lu.lookup('close'); // 关闭弹窗
}
});
}
}
}).lookup('setText', '请选择区域').lookup('setValue', -1);
dialog:{} 这里就是Easyui 中的dialog ,参数神马的都一样
插件源码:
css
.lookup .combo-arrow{
background:url(../images/icon-select.gif) no-repeat 50% 50%;
}
图片:
js
/*
疯狂秀才(1055818239)
version: 0.01
*/
(function ($) { // 创建控件DOM
function create(target) {
var id = $(target).attr('id'); if (!id) {
id = 'lookup_' + new Date().getTime();
$(target).attr('id', id);
} $(target).addClass('combo-f').hide(); var lookup = $('<span class="combo"></span>').insertAfter(target);
var textbox = $('<input type="text" class="combo-text" />').appendTo(lookup);
var arrow = $("<span><span class=\"combo-arrow \"></span></span>").appendTo(lookup);
var valbox = $("<input type=\"hidden\" class=\"combo-value\">").appendTo(lookup); lookup.addClass('lookup'); var state = $.data(target, 'lookup'); // 添加图标
if (state.options.iconCls) {
arrow.find('.combo-arrow').addClass(state.options.iconCls);
}
else {
arrow.find('.combo-arrow').addClass('icon-search');
} // 创建 dialog
var _dialogOpts = {
closed: true,
title: state.options.title,
onClose:function() {
state.dialog.dialog('destroy');
state.dialog = null;
}
} var name = $(target).attr("name");
if (name) {
lookup.find("input.combo-value").attr("name", name);
$(target).removeAttr("name").attr("comboName", name);
}
textbox.attr("autocomplete", "off"); arrow.on('click', function () { if (!state.dialog) {
var did = 'dialog_' + id + '-' + new Date().getTime();
_dialogOpts = $.extend({}, state.options.dialog, _dialogOpts); var _dialog = $('<div/>').attr('id', did).dialog(_dialogOpts);
state.dialog = _dialog;
} state.dialog.dialog('open');
}); state.textbox = textbox;
state.valbox = valbox; } $.fn.lookup = function (options, param) {
if (typeof options == 'string') {
var method = $.fn.lookup.methods[options];
if (method) {
return method(this, param);
} else {
return this.lookup(options, param);
}
} options = options || {}; return this.each(function () {
var state = $.data(this, 'lookup');
if (state) {
$.extend(state.options, options);
create(this);
}
else {
$.data(this, 'lookup', { options: $.extend({}, $.fn.lookup.defaults, options) });
create(this);
}
}) } $.fn.lookup.methods = {
open: function () { },
close: function (jq) {
return jq.each(function() {
var state = $.data(this, 'lookup');
state.dialog.dialog('close');
});
},
setValue: function (jq, val) {
return jq.each(function () {
var state = $.data(this, 'lookup');
state.valbox.val(val);
}); },
getValue: function (jq) {
var state = $.data(jq[0], 'lookup');
return state.valbox.val(); },
setText: function (jq, text) {
return jq.each(function () {
var state = $.data(this, 'lookup');
state.textbox.val(text);
}); },
getText: function (jq) {
var state = $.data(jq[0], 'lookup');
return state.textbox.val();
}
} $.fn.lookup.defaults = {
iconCls: '',
width: 120, height: 'auto',
dialog: {
title: '选择',
width: 400, height: 300
},
onOpened: function() {
}
} })(jQuery);
丰富Easyui 的插件 - lookup的更多相关文章
- 使用EasyUI的插件前需要引入的文件
一.使用EasyUI的插件需要引入一些文件 1.引入相关文件 easyui.css: easyUi的样式文件 icon.css:easyUI的图标样式文件 easyui.min.js:easyUi的类 ...
- easyUI draggable插件使用不当,导致拖动div内部文本框无法输入;设置echarts数据为空时就显示空白,不要动画和文字
先上一个Demo <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://ww ...
- ajax+json模态框中分页(spring+struts+mybatis+easyui分页插件)
0.业务需求: 点击每个数字的时候可以显示每个对应的详细记录.也就是得点击11的时候拿着开采部与C级去查询.
- EasyUI edatagrid插件使用小计
html片段 <table id="menuview" style="width:100%"> <thead> <tr> & ...
- JavaScript- jquery easyui 可编辑表格插件 easyui.editgrid
最近项目前端使用 jquery+easyui来做,用了几个月,觉得easyui是一个很不错的开源前端UI框架, 虽然偶尔会遇到一些小问题,但是凭借多年前端开发的实力积累 都一一解决了,其中比较典型的就 ...
- 前端框架 EasyUI (1)熟悉一下EasyUI
jQuery EasyUI 官方网站 http://www.jeasyui.com/ .去年新开了个中文网 http://www.jeasyui.net/,不知道是不是官方的,不过看着挺像样.但是,广 ...
- jquery easyui 插件开发
(function($) { /** * 插件定义 */ $.fn.resquery = function(options, param) { if (typeof options == " ...
- Jquery easyui 教程
Jquery easyui教程 目 录 1基本拖放... 4 2构建购物车型拖放... 5 3创建课程表... 8 4菜单和按钮Menu and Bu ...
- easyui 页签
昨天开始搭后台框架,到晚上的时候遇到了一个现在觉得挺可笑但是当时一直很纠结很纠结的问题,这个问题刚刚解决出来,把它拿出来说说,让自己长点儿记性,希望大家不要犯我这个错误啊 在backstage.jsp ...
随机推荐
- 结对编程-地铁续(有种上个学期OO的既视感)
我们组比较特殊..三人结对 github:https://github.com/qingchanghan/WPFUI_Metro po一张照片: 石浩然,韩青长.陈彦吉 (台式机真的很高端,分屏贼帅) ...
- MySQL 数据库双向镜像、循环镜像(复制)
在MySQL数据库镜像的贴子中,主数据库A 的数据镜像到从数据库B,是单向的,Zen Cart网店的数据读写都必须在数据库A进行,结果会自动镜像到数据库B中.但是对数据库B的直接操作,不会影响数据库A ...
- 0007《SQL必知必会》笔记03-汇总与分组数据
1.有些时候需要数据的汇总值,而不是数据本身,比如对某些数据求和.计数.求最大最小值.求平均值,因此就有了5个聚集函数:AVE().COUNT().MAX().MIN().SUM(): (1)求平均值 ...
- 2、HDFS和Yarn的基础学习笔记
日志 --排错 .log:通过log4j记录的,记录大部分应用程序的日志信息 .out:记录标准输出和标准错误日志,少量记录 hdfs 常用shell -ls -put < ...
- SQL Server调优系列进阶篇(深入剖析统计信息)
前言 经过前几篇的分析,其实大体已经初窥到SQL Server统计信息的重要性了,所以本篇就要祭出这个神器了. 该篇内容会很长,坐好板凳,瓜子零食之类... 不废话,进正题 技术准备 数据库版本为SQ ...
- C#调用自定义表类型参数
-SQL SERVER生成测试环境: --创建测试DB CREATE database Sales; go USE Sales GO --创建表类型 IF TYPE_ID('LocalDT') IS ...
- iOS打包Framework真机和模拟器兼容合并版本 - 详细攻略步骤
打包Framework,测试时: 1.用模拟器打包,测试时只能跑在模拟器 2.用真机打包,测试时只能跑在真机 那么怎么做到一个版本兼容以上两种场景呢? 解决如下: 1.打开终端 2.输入 lipo ...
- 通过SecureCRT访问亚马逊Amazon EC2主机
亚马逊推出了免费的云主机服务器 Amazon EC2,它是通过安全密钥来访问主机的. 问题是下载的密钥在SecureCRT 上无法直接使用,需要转换. 下面的方法可以在自己的linux主机上生成sec ...
- 大话设计模式C++版——简单工厂模式
简单工厂模式应该是所有设计模式中最简单,也最基础的一种模式,以下是一个简单的采用工厂模式写一个加减法的计算器. 1.抽象接口类——依赖倒转原则(高层和底层都要依赖于抽象,针对接口编程) class I ...
- 【温故而知新-Javascript】使用canvas元素(第一部分)
1. 开始使用 canvas 元素 canvas 元素非常简单,这是指它所有的功能都体现在一个JavaScript对象上,因此该元素本身只有两个属性:width 和 height. canvas 元素 ...