`

jquery.jeditable的改造

 
阅读更多
DataTables作为开源的jquery表格插件,对于编辑控件这块做的还远远不够,官方默认的Editor是收费的,而且功能也非常不齐全,并且这些可编辑插件都是实时在线编辑为主。不得已之下我对jeditable做了写扩展。

背景: Jeditable在线可编辑表单插件,即它是时时保存的,只要修改完就提交到服务器了。
但是很多基于表格式的数据新增、修改不需要时时保存,等数据都输入完成之后再统一提交到服务器进行保存。

jeditable的插件思路是,在控件处增加form标签,并嵌入input、select、textarea等控件,使用form提交的方式将数据提交到服务器。

源码修改,在322处,增加一个参数dataAction, 如果是local,则表示数据编辑好之后,提交到本地。
} else if(settings.dataAction == "local"){
    // 对控件做了扩展,增加了设置值和获取值
    setValue.apply(self, [input.val(), settings]);
    getValue.apply(self, [input.val(), settings]);
    self.editing = false;
    callback.apply(this, [this.innerHTML, settings])
    if (!$.trim($(this).html())) {
        $(this).html(settings.placeholder);
    }
} else {


扩展select控件,此控件是配合DataTables进行表格编辑的
select: {
    getValue: function(value, settings){
        var data = settings.data;
        $(this).html(data[value]);
    },
    setValue: function(value, settings){
        var oTable = settings.oTable;
        var colIdx = settings.colIdx;
        var rowIdx = settings.rowIdx;
        oTable._fnSetCellData(rowIdx, colIdx, value);
    },
    element : function(settings, original) {
        var select = $('<select />');
        $(this).append(select);
        return(select);
    },
    content : function(data, settings, original) {
        /* If it is string assume it is json. */
        if (String == data.constructor) {     
            eval ('var json = ' + data);
        } else {
        /* Otherwise assume it is a hash already. */
            var json = data;
        }
        for (var key in json) {
            if (!json.hasOwnProperty(key)) {
                continue;
            }
            if ('selected' == key) {
                continue;
            }
            var option = $('<option />').val(key).append(json[key]);
            $('select', this).append(option);   
        }                   
        /* Loop option again to set selected. IE needed this... */
        $('select', this).children().each(function() {
            if ($(this).val() == json['selected'] ||
                $(this).text() == $.trim(original.revert)) {
                    $(this).attr('selected', 'selected');
            }
        });
        /* Submit on change if no submit button defined. */
        if (!settings.submit) {
            var form = this;
            $('select', this).change(function() {
                form.submit();
            });
        }
    }
},
分享到:
评论

相关推荐

    jquery.jeditable.js

    jquery.jeditable.js开发工具 最新版,2013 1 13 更新

    开发工具 jquery.dataTables.min

    开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery....

    jquery.zTree.js.rar

    jquery-1.4.4.min.js jquery.ztree.exhide.min.js jquery.ztree.exedit.min.js jquery.ztree.excheck.min.js jquery.ztree.core.min.js jquery.ztree.all.min.js jquery-1.4.4.js jquery.ztree.exhide.js jquery....

    jquery.jeditable 分享

    Jeditable 是一个用来就地编辑(Edit in Place)文本信息的 jQuery 插件。

    jquery.tools.min.js 最新的1.2.7版本

    jquery.tools.min.js 最新的1.2.7版本 jquery.min.js是压缩版的jquery库,是由完整版的jQuery库经过压缩得来,压缩后功能与未压缩的完全一样,只是将其中的空白字符、注释、空行等与逻辑无关的内容删除,并进行一些...

    jquery.json-2.3.min.js和jquery.json-2.3.js

    jquery.json-2.3.min.js和jquery.json-2.3.js jQuery为开发插件提拱了两个方法,分别是:jQuery.extend(object); 为扩展jQuery类本身 jQuery.fn.extend(object);给jQuery对象添加方法。

    jquery.hash.min.js 和 jquery.ba-hashchange.min.js

    单页后退前进刷新 jquery.hash.min.js 和 jquery.ba-hashchange.min.js

    jquery.fly.min.js

    jquery.fly.min.js jquery.fly.min.js jquery.fly.min.js jquery.fly.min.js jquery.fly.min.js

    jquery.validate 版本大全

    jquery.validate.1.9.0.min.js jquery.validate.1.12.0.min.js jquery.validate.1.13.1.min.js jquery.validate.1.16.0.min.js jquery.validate.1.14.0.min.js jquery.validate.1.15.1.min.js jquery.validate....

    jquery.treegrid.min.js

    jquery.treegrid.min.js jquery.treegrid.min.jsjquery.treegrid.min.jsjquery.treegrid.min.js

    jquery.cookie.js,jquery.min.js

    jquery.cookie.js,jquery-1.11.0.min.js,respond.min.js, bootstrap.min.js,html5shiv.js

    jquery.弹出框jquery.弹出框

    jquery.弹出框jquery.弹出框jquery.弹出框jquery.弹出框jquery.弹出框jquery.弹出框jquery.弹出框jquery.弹出框jquery.弹出框jquery.弹出框jquery.弹出框jquery.弹出框jquery.弹出框jquery.弹出框jquery.弹出框...

    jquery.slimscroll.min.js

    jquery.slimscroll.min.js下载 jquery.slimscroll.min.js下载

    jquery插件库(jquery.treeview插件库)

    jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery....

    jquery.media.js.zip

    jquery.media.js

    jquery.form.js下载

    jquery.form.js jquery.form.js

    jquery.json2xml.js和jquery.xml2json.js

    jquery.json2xml.js&&jquery.xml2json.js在jQuery的基础上实现json与xml的相互转换

    jquery.autocomplete.js&css.rar

    jquery.autocomplete.js 、jquery.autocomplete.css

    jquery.marquee.js官方下载

    jquery.marquee.js官方下载jquery.marquee.js官方下载

    Jquery.json.js

    在官网上一直下载不下来 然后共享在这 jquery.json-2.3.min.js和jquery.json-2.3.js

Global site tag (gtag.js) - Google Analytics