/** edittable 编辑单元格 caratename:chenxihu caratetime:214-04-06 21:40:00 email:qqqq2900@126.com homepage:www.xh829.com */ (function ($) { function edittable(element, options){ var obj = element; var can = options; var rand = ''+parseInt(Math.random()*99999)+''; var me = this; var timeci = 0; this.rand = rand; //初始化 this.init = function(){ var o = obj.find('[edittable]'); var len = o.length; for(var i=0;i=0 || ntml.indexOf('INPUT')>=0 || ntml.indexOf('SELECT')>=0 || ntml.indexOf('select')>=0)return false; timeci++; var fid = o.attr('edittable');//字段名 var ocaa= can.data[fid]; var xty = 'text'; if(ocaa)if(ocaa.xtype)xty = ocaa.xtype; var val = o.text(), nid = 'edittable_'+rand+'_'+timeci+'', off = o.offset(), wid = o.width(), canslw = 'fields="'+fid+'" id="'+nid+'" changeid="'+js.changeid+'"'; s='', othval = ntml.replace(val,''); if(xty == 'text'){ s+= ''; o.html(s); var o1 = $('#'+nid+''); o1.focus(); o1.val(val); o1.blur(function(){ me.textblur($(this),val,o,othval); }); } if(xty == 'select'){ var da = ocaa.store; s+= ''; o.html(s); var o1 = $('#'+nid+''); o1.focus(); o1.blur(function(){ me.textblur($(this),val,o); }); } if(xty == 'checkbox'){ var che = '', dis = ocaa.display, cval= 0; for(var i=0;i'+ocaa.label+''; o.html(s); var o1 = $('#'+nid+''); o1.focus(); o1.blur(function(){ me.checkboxblur(this,cval,o); }); } can.changcell(o); }; this.checkboxblur = function(o1,oval,oba){ var nval = '0'; if(o1.checked)nval='1'; var o = $(o1); var fields = o.attr('fields'); this.savedata(o,nval,oval); var ocaa= can.data[fields]; var s = ''+ocaa.display[nval]+''; oba.html(s); }; //保存数据 this.savedata = function(o,nval,oval){ if(nval == oval)return; var canid = o.attr('changeid'); var fields = o.attr('fields'); var saveurl = can.saveurl; can.savedata(saveurl,{id:canid,fields:fields,newvalue:nval,table:can.table,keyfields:can.keyfields},function(da){ }); } this.textblur = function(o,oval,oba,ovs){ var nval = o.val(); if(!ovs)ovs = ''; o.remove(); this.savedata(o,nval,oval); oba.html(ovs+nval); } } $.fn.edittable = function(options){ var defaultVal = { trigger:'dblclick', //默认双击编辑 data:{}, keyfields:'id',//主键字段名 saveurl:js.getajaxurl('saveeditable','user','system'), //保存表格的地址 savedata:function(url,das,sboole){ $.post(url,das,sboole); }, changcell:function(){} }; var can = $.extend({}, defaultVal, options); var funcls = new edittable($(this), can); funcls.init(); return funcls; }; })(jQuery);