js动态调用方法-程序员宅基地

技术标签: Java  js  

js 动态方法调用经验分享

html代码


<tr>
                    <td>用户名:</td>
                    <td><input class="easyui-textbox" type="text" name="username" data-options="required:true,validType:['length[5,10]','checkName']"></input></td>
                </tr>

js代码

 //给所有a标签都注册一个事件
$("a").on("click", function () {
     //动态获取data-method属性对应的值
     var method = $(this).data("method");
     //method不能为空
     if(method){
        //动态触发事件
        cdebai[method]();
     }
});

cdebai= {
        //高级查询   easyui 高级查询
        "search": function () {
            //把form表单元素,直接封装成一个json对象
            var jsonObj = $("#searchForm").serializeObject();
            //加载datagrid
            dg.datagrid('load', jsonObj);
        },
        //删除
        "delete": function () {
            //获取选中的行
            var rows = dg.datagrid("getSelections");
            //在js中认为false的值:0  false ""  null NaN  undefined
            if (!rows.length) {
                $.messager.alert('操作错误', '亲!请选中数据进行删除!', 'error');
                return;
            }
            //定义一个数组,该数组把所有的id都给装进来
            var ids = [];
            //循环数组中的所有数据
            $.each(rows, function (i, o) {
                //把id装进数组中
                ids.push(o.id);
            });
            $.messager.confirm('确认', '你确定要离我而去吗?', function (r) {
                if (r) {
                    $.get("/employee/delete", {"ids": ids.toString()}, function (result) {
                        if (result.success) {
                            //刷新界面
                            dg.datagrid("reload");
                        } else {
                            $.messager.alert('失败', result.msg, 'error');
                        }
                    });
                }
            });

        },
        //添加按钮,弹出窗体
        "add": function () {
            //显示密码框
            $("tr[data-password]").show();
            //清空form表单中所有的值
            ff.form("clear");
            //启用密码框的验证
            $("#password").textbox("enableValidation");
            $("#configPassword").textbox("enableValidation");
            //弹出窗体,居中,并且设置标题,动态修改高度
            dlg.dialog("open").dialog("center").dialog("setTitle", "添加员工").dialog("resize", {
                height: 350
            });
        },
        //修改按钮,弹出窗体
        "edit": function () {
            //获取即将要修改的数据(单个对象)
            var row = dg.datagrid("getSelected");
            //没有选中就会返回null
            if (!row) {
                $.messager.alert('操作错误', '亲!请选中数据进行修改!', 'error');
                return;
            }
            //隐藏密码框
            $("tr[data-password]").hide();

            //清空form表单
            ff.form("clear");
            //动态添加属性
            if (row.department) {
                row["department.id"] = row.department.id;
            }
            //回显操作
            ff.form('load', row);
            //禁用密码框的验证
            $("#password").textbox("disableValidation");
            $("#configPassword").textbox("disableValidation");
            //弹出窗体,居中,设置标题  动态修改它的宽度和高度
            dlg.dialog("open").dialog("center").dialog("setTitle", "修改员工").dialog("resize", {
                height: 270
            });
        },
        //保存数据
        "saveData": function () {
            var url = "/employee/save";
            if ($("#eid").val()) {
                url = "/employee/update?cmd=update";
            }
            //提交form表单
            ff.form('submit', {
                url: url,
                onSubmit: function () {//提交之前先做验证
                    return ff.form("validate");//验证通过之后才返回true,否则返回false,false它会阻止你提交
                },
                success: function (data) {
                    try{
                        //把json字符串转为对象
                        var result = $.parseJSON(data);
                        if (result.success) {
                            //关闭窗体
                            dlg.dialog("close");
                            //刷新界面
                            dg.datagrid("reload");
                        } else {
                            $.messager.alert('操作错误', result.msg, 'error');
                        }
                    }catch(e){
                        $.messager.alert('操作错误', "对不起你没有对应的权限!!!", 'error');
                    }
                }
            });
        }
    }
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Cdebai/article/details/102810921

智能推荐

Django与scrapy结合,sqlite3.connect() windows数据库路径问题_connection = sqlite3.connect无法用相对路径怎么办-程序员宅基地

文章浏览阅读1k次。方法一:绝对路径self.conn = sqlite3.connect('G:\python工程\mysite\db.sqlite3')这是最懒省事的方法方法二:相对路径这种不行(linux下的方式):self.conn = sqlite3.connect('../mysite/db.sqlite3')或许这种:self.conn = sqlite3.co..._connection = sqlite3.connect无法用相对路径怎么办

工程数学基础学习笔记(转自bilibili DR_CAN)_工程数学笔记-程序员宅基地

文章浏览阅读1.1k次,点赞4次,收藏10次。第一讲:特征值与特征向量原视频链接:https://www.bilibili.com/video/BV1fx41137Zm第二讲:线性化,泰勒级数,泰勒展开式原视频链接:https://www.bilibili.com/video/BV1Xx411M7sT第三讲:线性时不变系统的卷积原视频链接:https://www.bilibili.com/video/BV1cs411W74f第四讲:证明卷积的拉普拉斯变换原视频链接:https://www.bilibili._工程数学笔记

Java并发编程(六)JUC介绍、JUC锁(公平锁、非公平锁、可重入锁/递归锁、自旋锁、ReentrantLock)_juc锁是什么锁-程序员宅基地

文章浏览阅读559次。一、JUC介绍JUC就是指java.util.concurrent包下的接口、类,为并发编程提供便利。是在JDK 1.5 之后加入的。我们可以通过官网查看JDK API文档,JDK从9开始按模块划分了,并且文档开始支持搜索功能,所以我们直接看JDK9的文档:https://docs.oracle.com/javase/9/docs/api/overview-summary.html选择java.base:在这里我们找到关于juc的三个包:java.util.concurrent:这个包包括_juc锁是什么锁

[2015-11-04 21:42:47 - UIWidgetTest] res\drawable-hdpi-v4\Lighthouse.png: Invalid file name: must co_drawable-hdpi-v4报错-程序员宅基地

文章浏览阅读1.1k次。遇到这个错误,刚开始又以为r.java文件出了什么离奇错误,对这些错误心有余而力不足,后来百度了一下,a-z就是文件名的书写格式必须为小写a到z,0-9也同理,纠结了许久的错误原来就仅仅是文件名的书写错误,有点小坑爹的感觉,文件名字一改,r文件重写,错误全部消失,就这么个回事_drawable-hdpi-v4报错

DSP Tools, System Generator for DSP, AccelDSP - Which versions of System Generator for DSP and Accel_system generator 9.2安装包-程序员宅基地

文章浏览阅读1.3k次。源自:http://www.xilinx.com/support/answers/17966.htmDescriptionWhich versions of the Xilinx DSP, System Generator for DSP, and AccelDSP synthesis tools are compatible with which versions o_system generator 9.2安装包

virtualbox安装ubuntu(亲测有效)_virtualbox第一次启动ubuntu需要很久吗-程序员宅基地

文章浏览阅读792次。Ubuntu 安装1.新建与加载盘片当你安装完 VirtualBox 后,打开你应该会看到下面这样的界面VirutalBox点击新建后会出来如下图所示的界面,一般如图填写即可,内存可酌情填写新建虚拟电脑下一步将创建虚拟硬盘,如图所示,默认位置为 C 盘,如果你不想在 C 盘创建,请确保你选择的盘格式为NTFS创建虚拟硬_virtualbox第一次启动ubuntu需要很久吗

随便推点

谈谈持续集成,持续交付,持续部署之间的区别_电力系统 持续集成 持续交付 持续部署-程序员宅基地

文章浏览阅读1k次。经常会听到持续集成,持续交付,持续部署,三者究竟是什么,有何联系和区别呢?假如把开发工作流程分为以下几个阶段:编码 -&gt; 构建 -&gt; 集成 -&gt; 测试 -&gt; 交付 -&gt; 部署正如你在上图中看到,「持续集成(Continuous Integration)」、「持续交付(Continuous Delivery)」和「持续部署(Continuous Deployment)」..._电力系统 持续集成 持续交付 持续部署

Matlab7 runtime error 解决方案集合_matlab7runtime error-程序员宅基地

文章浏览阅读4.7k次。runtime error! Program:C\MATLAB7\bin\win32\MATLAB.exe this application has requested the runtime to terminnate it in an unusual way.please contact the application's support team for more inf_matlab7runtime error

每周荐书 云原生 Docker Web算法(评论送书)_7月 云原生 书-程序员宅基地

文章浏览阅读106次。每周荐书 云原生 Docker Web算法(评论送书)_7月 云原生 书

es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?_60w数据有必要用es吗-程序员宅基地

文章浏览阅读1.3w次,点赞10次,收藏35次。面试题es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s,坑爹了。第一次搜索的时候,是5~10s,后面反而就快了,可能就几百毫秒。你就很懵,每个用户第一次访问..._60w数据有必要用es吗

R语言学习笔记2_r语言[,c]-程序员宅基地

文章浏览阅读406次。R的常用命令与列表操作_r语言[,c]

几种模态/时序逻辑的对比(CTL、PLTL、mu-演算)_mu 演算公式-程序员宅基地

文章浏览阅读5.3k次,点赞4次,收藏14次。模型检测模型检测的基本思想是用状态迁移系统(S)表示并发系统的行为,用模态/时序公式(F)描述系统的性质。这样,“系统是否具有所期望的性质?”就转化为数学问题“S 是否是F 的模型?”。常见的模态/时序逻辑模型检测中最常用的逻辑有计算树逻辑(CTL-Computation Tree Logic)、命题线性时序逻辑(PLTL-Propositional Linear Tempora..._mu 演算公式

推荐文章

热门文章

相关标签