插件用途:

  主要用于表单中,某字段的内容是用其他表里的记录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. AEAI DP开发平台精要

    1 背景概述 相信很多了解数通畅联软件的人对AEAI DP应用开发平台并不陌生,笔者在入职第一天就开始接触AEAI DP,使用AEAI DP开发过AEAI WM.AEAI CRM以及中国XXXX管理系 ...

  2. Jenkins用户配置(安装好jenkins后,怎么配置用户管理、权限管理)

    直奔主题 安装完成后,先开启用户配置 1. 系统管理-->配置权限 2.  启用安全,并选中"安全矩阵" 如上,搞定: 可以按用户去设置各项目的操作权限了: 轻松实现,jen ...

  3. Effective Java Index

    Hi guys, I am happy to tell you that I am moving to the open source world. And Java is the 1st langu ...

  4. Java并发之死锁实例

    package com.thread.test.thread; /** * Created by windwant on 2016/6/3. */ public class MyTestDeadLoc ...

  5. SQL语句查询某表的所有字段及数据类型

    SQL语句查询某表的所有字段及数据类型 SELECT name AS column_name , TYPE_NAME(system_type_id) AS column_type , max_leng ...

  6. Android UI编程(1)——九宫格(GridView)

    (转自:http://blog.csdn.net/Thanksgining/article/details/42968847) 参考博客:http://blog.csdn.net/xyz_lmn/ar ...

  7. jQuery中大于gt和小于lt

    gt,lt计数都是下标从0开始,而且不论大小于,都不包括它自己本身. <!DOCTYPE html> <html> <head> <meta charset= ...

  8. javascript日历控件——纯javascript版

    平时只有下班时间能code,闲来写了个纯javascript版.引用该calendar.js文件,然后给要设置成日历控件的input的id设置成calendar,该input就会变成日历控件. < ...

  9. 必须知道的八大种排序算法【java实现】(一) 冒泡排序、快速排序

    冒泡排序 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个 ...

  10. KVM 介绍(3):I/O 全虚拟化和准虚拟化 [KVM I/O QEMU Full-Virtualizaiton Para-virtualization]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...