插件用途:

  主要用于表单中,某字段的内容是用其他表里的记录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的更多相关文章

  1. 使用EasyUI的插件前需要引入的文件

    一.使用EasyUI的插件需要引入一些文件 1.引入相关文件 easyui.css: easyUi的样式文件 icon.css:easyUI的图标样式文件 easyui.min.js:easyUi的类 ...

  2. easyUI draggable插件使用不当,导致拖动div内部文本框无法输入;设置echarts数据为空时就显示空白,不要动画和文字

    先上一个Demo <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://ww ...

  3. ajax+json模态框中分页(spring+struts+mybatis+easyui分页插件)

    0.业务需求: 点击每个数字的时候可以显示每个对应的详细记录.也就是得点击11的时候拿着开采部与C级去查询.

  4. EasyUI edatagrid插件使用小计

    html片段 <table id="menuview" style="width:100%"> <thead> <tr> & ...

  5. JavaScript- jquery easyui 可编辑表格插件 easyui.editgrid

    最近项目前端使用 jquery+easyui来做,用了几个月,觉得easyui是一个很不错的开源前端UI框架, 虽然偶尔会遇到一些小问题,但是凭借多年前端开发的实力积累 都一一解决了,其中比较典型的就 ...

  6. 前端框架 EasyUI (1)熟悉一下EasyUI

    jQuery EasyUI 官方网站 http://www.jeasyui.com/ .去年新开了个中文网 http://www.jeasyui.net/,不知道是不是官方的,不过看着挺像样.但是,广 ...

  7. jquery easyui 插件开发

    (function($) { /** * 插件定义 */ $.fn.resquery = function(options, param) { if (typeof options == " ...

  8. Jquery easyui 教程

            Jquery easyui教程                 目  录 1基本拖放... 4 2构建购物车型拖放... 5 3创建课程表... 8 4菜单和按钮Menu and Bu ...

  9. easyui 页签

    昨天开始搭后台框架,到晚上的时候遇到了一个现在觉得挺可笑但是当时一直很纠结很纠结的问题,这个问题刚刚解决出来,把它拿出来说说,让自己长点儿记性,希望大家不要犯我这个错误啊 在backstage.jsp ...

随机推荐

  1. Spring整合Junit4

    1.加入相应依赖包 junit4-4.7.jar 以及spring相关jar包 2.在测试代码的源码包中如 src/test/java 新建一个抽象类如下 import org.junit.runne ...

  2. GlassFish: 001 安装、启动

    安装 在GlassFish项目的首页就可以找到如何安装: https://glassfish.java.net/download.html#gfoseTab 上面给出了5个步骤:0,1,2,3,4 第 ...

  3. SQL Server调优系列进阶篇(深入剖析统计信息)

    前言 经过前几篇的分析,其实大体已经初窥到SQL Server统计信息的重要性了,所以本篇就要祭出这个神器了. 该篇内容会很长,坐好板凳,瓜子零食之类... 不废话,进正题 技术准备 数据库版本为SQ ...

  4. Java设计模式 - 代理模式

    1.什么是代理模式: 为另一个对象提供一个替身或占位符以访问这个对象. 2.代理模式有什么好处: (1)延迟加载 当你需要从网络上面查看一张很大的图片时,你可以使用代理模式先查看它的缩略图看是否是自己 ...

  5. sqlyog不用密码登陆(强制取消)

    1.启用命令行.cd ../返回磁盘根目录.输入D: 进入D盘.dir可以显示所以文件夹. 2.在D盘找到mysql安装目录的bin文件夹 cd /xampp/mysql/bin 3.然后输入命令'm ...

  6. ubuntu16.04源码编译安装wine1.8.6安装不上引来的错误

    configure: libxcomposite 64-bit development files not found, Xcomposite won't be supported. configur ...

  7. shutdown

    关机命令 $sudo shutdowm [-hrc] -h定时关机,以分钟为单位的计时,时间或now -h now立即关机 -h +2020分钟后关机 -h 12:0012点关机 -r now立即重启 ...

  8. C语言中链表任意位置怎么插入数据?然后写入文件中?

    链表插入示意图:(图是个人所画)因为链表指针指来指去,难以理解,所以辅助画图更加方便. 插入某个学号后面图: 定义的结构体: struct student { ]; //学生学号 ]; //学生姓名 ...

  9. hdu 5057 Argestes and Sequence(分块算法)

    Argestes and Sequence Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  10. linux原始套接字(1)-arp请求与接收

    一.概述                                                   以太网的arp数据包结构: arp结构op操作参数:1为请求,2为应答. 常用的数据结构如 ...