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开发工具 最新版,2013 1 13 更新
开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery....
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....
Jeditable 是一个用来就地编辑(Edit in Place)文本信息的 jQuery 插件。
jquery.tools.min.js 最新的1.2.7版本 jquery.min.js是压缩版的jquery库,是由完整版的jQuery库经过压缩得来,压缩后功能与未压缩的完全一样,只是将其中的空白字符、注释、空行等与逻辑无关的内容删除,并进行一些...
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.fly.min.js jquery.fly.min.js jquery.fly.min.js jquery.fly.min.js jquery.fly.min.js
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.jsjquery.treegrid.min.jsjquery.treegrid.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.slimscroll.min.js下载 jquery.slimscroll.min.js下载
jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery....
jquery.media.js
jquery.form.js jquery.form.js
jquery.json2xml.js&&jquery.xml2json.js在jQuery的基础上实现json与xml的相互转换
jquery.autocomplete.js 、jquery.autocomplete.css
jquery.marquee.js官方下载jquery.marquee.js官方下载
在官网上一直下载不下来 然后共享在这 jquery.json-2.3.min.js和jquery.json-2.3.js