插件用途:

  主要用于表单中,某字段的内容是用其他表里的记录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. 【转】简析 .NET Core 构成体系

    前文介绍了.NET Core 在整个.NET 平台所处的地位,以及与.NET Framework的关系(原文链接),本文将详细介绍.NET Core 框架的构成和各模块主要功能,以及如何实现跨平台. ...

  2. js中的==运算: [''] == false —>true

    图1 计算下面表达式的值: [''] == false 首先,两个操作数分别是对象类型.布尔类型.根据图1,需要将布尔类型转为数字类型,而false转为数字的结果是0,所以表达式变为: [''] == ...

  3. jQuery添加options点击事件并传值

    说明: 根据选择不同店铺选项,上送不同id值,展示不同商品列表   var formStr = "{'supplierId':'供应链企业|%-jm-sprt-%|93794498-3'}& ...

  4. Java Gradle入门指南之简介、安装与任务管理

        这是一篇Java Gradle入门级的随笔,主要介绍Gradle的安装与基本语法,这些内容是理解和创建build.gradle的基础,关于Gradle各种插件的使用将会在其他随笔中介绍.    ...

  5. ORACLE DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象查看

    在ORACLE数据库中,DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象是什么东西呢?其实OBJECT_TYPE为LOB就是大对象(LOB),它指那些用来存储大量数据的数据库字段.下面 ...

  6. 开启Tomcat 源码调试

    开启Tomcat 源码调试 因为工作的原因,需要了解Tomcat整个架构是如何设计的,正如要使用Spring MVC进行Web开发,需要了解Spring是如何设计的一样,有哪些主要的类,分别是用于干什 ...

  7. python中列表、元组、字典内部功能介绍

    一.列表(list) 常用功能的介绍:

  8. Windows批处理:自动检查网络连通性

    检测网络连通性我用的是丛远到近的方法,即“外网——网关——内网——本机”,脚本的实现也是根据这个顺序用ping来检测,为提高检测速度,这里我只ping了2次,各位可以根据自己的需要进行修改. 使用方法 ...

  9. Java JDBC高级特性

    1.JDBC批处理 实际开发中需要向数据库发送多条SQL语句,这时,如果逐条执行SQL语句,效率会很低,因此可以使用JDBC提供的批处理机制.Statement和PreparedStatemen都实现 ...

  10. 在Windows Azure虚拟机上开发Windows 8 应用

    前提条件 Windows Azure开发者账号:如果您拥有微软MSDN Subscription账户,那么意味着您可免费申请Windows Azure开发者账号. 创建虚拟机 点击Windows Az ...