my97日期控件插件的开发与编写

2023-11-15

my97日期控件插件的开发与编写

/*扩展一个easyui 的my97 控件*/
(function ($, undefined) {

    function create(target) {
        var state = $.data(target, "my97"), opts = state.options,
            t = $(target).addClass("my97-f").combo($.extend({}, opts, {
                panelWidth: 0, panelHeight: 0,
                onShowPanel: function () {
                },
                onHidePanel: function () {
                    if (state.dialog) {
                        var dia = state.dialog, dopts = dia.dialog("options");
                        state.dialog = null;
                        if (!dopts.closed) { dia.dialog("close"); }
                    }
                },
                onDestroy: function () {
                    if (state.dialog) {
                        state.dialog.dialog("destroy");
                        state.dialog = null;
                    }
                    if ($.isFunction(opts.onDestroy)) { opts.onDestroy.apply(this, arguments); }
                }
            })),
            textbox = t.combo("textbox"), panel = t.combo("panel");
        textbox.closest("span.combo").addClass("datebox");
        textbox.click(function () {
            var wopts = $.extend({}, opts, {
                el: textbox[0],
                readOnly: true,
                onpicking: function (dp) {
                    if ($.isFunction(opts.onpicked) && opts.onpicked.apply(this, arguments) == false) {
                        return false;
                    }
                    setValue(target, dp.cal.getNewDateStr());
                    $.util.exec(function () { t.combo("hidePanel"); });
                },
                oncleared: function () { t.combo("clear"); }
            });
            if (opts.readonly === false)
                WdatePicker(wopts);
        });
        panel.panel("body").addClass("combo-panel-noborder");

        opts.originalValue = opts.value;
        if (opts.value) {
            setValue(target, opts.value);
        }
        t.combo("validate");
    };

    function showWdatePicker(target) {

    }

    function setValue(target, value) {
        var t = $(target);
        var v = value || "";
        t.combo("setValue", v).combo("setText", v);
    };

    function getOptions(target) {
        var my97Opts = $.data(target, 'my97').options;
        var comboOpts = $.data(target, "combo").options;
        return $.extend({}, my97Opts, comboOpts);
    }

    $.fn.my97 = function (options, param) {
        if (typeof options == "string") {
            var method = $.fn.my97.methods[options];
            if (method) {
                return method(this, param);
            } else {
                return this.combo(options, param);
            }
        }
        options = options || {};
        return this.each(function () {
            var state = $.data(this, "my97");
            if (state) {
                $.extend(state.options, options);
            } else {
                $.data(this, "my97", { options: $.extend({}, $.fn.my97.defaults, $.fn.my97.parseOptions(this), options) });
                create(this);
            }
        });
    };

    $.fn.my97.parseOptions = function (target) {
        return $.extend({}, $.fn.combo.parseOptions(target), $.parser.parseOptions(target, [
            "el", "vel", "weekMethod", "lang", "skin", "dateFmt", "realDateFmt", "realTimeFmt", "realFullFmt", "minDate", "maxDate", "startDate",
            {
                doubleCalendar: "boolean", enableKeyboard: "boolean", enableInputMask: "boolean", autoUpdateOnChanged: "boolean",
                isShowWeek: "boolean", highLineWeekDay: "boolean", isShowClear: "boolean", isShowOK: "boolean", isShowToday: "boolean",
                isShowOthers: "boolean", autoPickDate: "boolean", qsEnabled: "boolean", autoShowQS: "boolean", opposite: "boolean"
            },
            { firstDayOfWeek: "number", errDealMode: "number" }
        ]));
    };

    $.fn.my97.methods = {
        options: function (jq) {
            var opts = jq.combo("options"), copts = $.data(jq[0], 'my97').options;
            return $.extend(copts, {
                originalValue: opts.originalValue, disabled: opts.disabled, readonly: opts.readonly
            });
        },

        setValue: function (jq, value) { return jq.each(function () { setValue(this, value); }); }
    };

    $.fn.my97.defaults = $.extend({}, $.fn.combo.defaults, {

        dateFmt: "yyyy-MM-dd"

    });


    if ($.fn.datagrid) {
        $.extend($.fn.datagrid.defaults.editors, {
            my97: {
                init: function (container, options) {
                    var box = $("<input type=\"text\"></input>").appendTo(container).my97(options);
                    box.my97("textbox").addClass("datagrid-editable-input");
                    return box;
                },
                destroy: function (target) {
                    $(target).my97("destroy");
                },
                getValue: function (target) {
                    var t = $(target), opts = t.my97("options");
                    return t.my97(opts.multiple ? "getValues" : "getValue");
                },
                setValue: function (target, value) {
                    var t = $(target), opts = t.my97("options");
                    if (value) {
                        t.my97("setValue", value);
                    } else {
                        t.my97("clear");
                    }
                },
                resize: function (target, width) {
                    $(target).my97("resize", width);
                },
                setFocus: function (target) {
                    $(target).my97("textbox").focus();
                }
            }
        });
    }



    $.parser.plugins.push("my97");

    if ($.fn.form) {
        $.fn.form.defaults.fieldTypes.unshift("my97");
        //$.array.insert($.fn.form.comboList, 0, "my97");
    }

})(jQuery);

测试:

    $("#productionDate").my97({
        maxDate:'#F{$(\'#installDate\').my97(\'getValue\')}'
    });
        $("#maintainDate").my97({
            dateFmt:'yyyy-MM-dd HH:mm:ss'
        });

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

my97日期控件插件的开发与编写 的相关文章

随机推荐

  • numpy中的np.random.rand、np.random.randn、np.random.randint、np.random.uniform等用法

    随机数生成方法 1 np random rand d0 d1 dn np random rand d0 d1 dn 生成一个指定形状的 0 1 之间均匀分布的随机数数组 参数d0 d1 dn指定了生成的随机数数组的维度 import num
  • js光标事件

    JavaScript是基于对象 object based的语言 而基于对象的基本特征 就是采用事件驱动 event driven 它是在图形界面的环境下 使得一切输入变化简单化 通常鼠标或热键的动作我们称之为事件 Event 而由鼠标或热键
  • DNF管理软件包

    DNF是一款Linux软件包管理工具 用于管理RPM软件包 DNF可以查询软件包信息 从指定软件库获取软件包 自动处理依赖关系以安装或卸载软件包 以及更新系统到最新可用版本 DNF与YUM完全兼容 提供了YUM兼容的命令行以及为扩展和插件提
  • 【文心一言】如何申请获得体验资格,并简单使用它的强大功能

    目录 一 文心一言 1 1 它能做什么 1 2 技术特点 1 3 申请方法 二 功能体验 2 1 文心一言 2 2 写冒泡排序代码 测试代码 2 3 画一个爱心 2 4 画一个星空 三 申请和通过 3 1 申请时间 3 2 通过时间 文心一
  • 【MATLAB第2期】源码分享#基于LSTM时间序列单步预测,含验证和预测未来

    MATLAB第2期 源码分享 基于LSTM时间序列单步预测 含验证和预测未来 1 运行环境 matlab2020a cpu 2 数据说明 单列数据 2018 10 2018 12 共三个月 92个数据 3 数据处理 样本标准化处理 其中 前
  • 含重复点的蚁群算法

    背景 以论文 汉中市城市生活垃圾收运路线优化研究 为背景 共37个位置 一个是车库 一个是垃圾处理中心 剩下35个是垃圾收集站 每次都是垃圾搬运车从车库出发 经过7个垃圾收集站 运到到垃圾处理中心 重复5次 直到35个垃圾收集站的垃圾都收集
  • Stata字符串函数:快捷提取字符信息

    1 substr 函数的用法 语法 substr s n1 n2 a s为需要进行提取的字符串 b n1表示提取的起始位置 c 对于不同编码的文本 n2代表不同含义 对于纯ASCII编码的文本 n2表示要提取字符长度为n2的字符串 而对于其
  • webpack打包文件过大的优化,提取第三方库(vue,ali-oss)到cdn,externals配置

    问题产生原因 vue或用其他第三方库webpack打包导致某单文件js过大 优化形式 webpack的externals配置 从输出的 bundle 中排除依赖 可将第三方库放到html用cdn加载 类似 调试方式 可参考vue cli 脚
  • 访问时被windos防火墙阻止浏览器网页找不到解决方法 postman使用

    postman使用 网页下载postman安装 添加环境 点击右边齿轮状 选择add 输入网址前缀post get各不一样 访问时被windos防火墙阻止浏览器网页找不到解决方法 点击服务管理器仪表板右上方的工具 高级windos设置 出
  • java中char的类型范围,Java中基本类型占字节数以及Uint32的意思

    初学开发的时候 我的第一门语言是JAVA android方向 基本很少考虑java中基本类型的占用字节数 直到工作中接触到串口通讯 与单片机通讯 看着那些通讯文档 看着例如Uint16 Uint32 Uint64 Char 16 Char
  • 如何使用Windows命令关闭被占用的端口

    1 使用快捷键Windows R 打开运行 输入cmd 用管理员权限打开Windows 命令窗口 2 然后执行命令 netstat nao findstr 8080 此处已8080端口为例 小伙伴们若要关闭其他窗口 只需将此处8080更换为
  • Hive Sql 最强最完整学习笔记

    一 DDL语句 数据定义语句 对数据库的操作 包含创建 修改数据库 对数据表的操作 分为内部表及外部表 分区表和分桶表 二 DQL语句 数据查询语句 单表查询 关联查询 hive函数 包含聚合函数 条件函数 日期函数 字符串函数等 行转列及
  • 线程安全list_不安全的集合类学习子笔记

    list 不安全类是什么 不安全类是指在多线程并发的时候不能保证数据正确性的类 通常是由于这些类并没有加锁造成的 为什么不设计成加锁的 其实 在list之前有个集合类vector 它是内部加锁 它是一个线程安全类 不优先使用它的原因是加锁可
  • kali firefox gah. your tab just crashed. 更新Firefox

    kali firefox gah your tab just crashed we can help choose restore this tab to reload the page 这个问题我大概八月份的一个晚上也发生过当时是kali
  • Robotframework 之exe安装(二)

    Robotframework 之pip安装 一 Robotframework 之exe安装 二 Robotframework安装过程中错误解决方案 三 一 exe安装步骤 1 python 2 7 10 amd64 msi 2 安装Robo
  • R 语言 wordcloud 与 wordcloud2 包的安装及参数说明

    一 wordcloud安装说明 install packages wordcloud 二 wordcloud2安装说明 我在RStudio编辑器直接输入 if require devtools install packages devtoo
  • Flutter中屏幕自适应(iPhone iPad Windows)

    flutter屏幕自适应 文章目录 flutter屏幕自适应 适配手机和平板的重要性 一 Sizer插件的使用 二 使用步骤 1 准备工作 2 正常使用的样式 3 判断平台设备的样式 总结 适配手机和平板的重要性 这是未进行屏幕适配的界面
  • HC-05通信的正确打开方式

    1 蓝牙模块RX TX 5 VCC分别与串口线TX RX 5 GND连接 2 打开串口助手 设置串口 波特率9600 打开串口 3 按一下蓝牙模块上的微动开关 4 在串口助手上发送AT PC端就会有OK回应 其它相应指令也会有相同回应了 我
  • Eclipse中配置Tomcat容器

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 问题描述 独立启动tomcat后在浏览器输入http localhost 8080可以成功访问到tomcat主页 但是当在Eclipse中启动tomcat时 虽然启动成功
  • my97日期控件插件的开发与编写

    my97日期控件插件的开发与编写 扩展一个easyui 的my97 控件 function undefined function create target var state data target my97 opts state opt