var isdebugging = false;//是否调试JS var dataType = isdebugging?'text':'json';//数据类型 function setLang(t){ var lang = $(t).val(); //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var win = $.dialog.top; var myDialog = win.$.dialog({fixed:true,lock:true,drag:false}); $.ajax({type: "POST",dataType:dataType,url: win.siteaurl+'/main/setlang',data: 'lang='+lang, success: function(data){ if(data.status==200){ parent.main.location.reload(); myDialog.close(); }else{ showmsg(myDialog,data); } }, error:function(XMLHttpRequest, textStatus, errorThrown){ debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'setLang'); } }); } function setUrl(t,urlid){ var val = $(t).val(); if(val){ $("#"+urlid).val(val); } } /* *1、当我们在模板文件中点击 "编辑" 按钮时,会调用admin.public.js中的"submitTo()"函数 *模板中:<a class="edit" title="编辑" href="javascript:submitTo('http://www.cicms.com/index.php?/admin/usergroup/edit/6','edit')"></a> *url:要请求的url,如:"http://www.cicms.com/index.php?/admin/usergroup/edit/6" *func:操作处理函数,如:"edit"-编辑操作 "add"-代表添加操作 "del"-代表删除操作 "sdel"-代表单条删除操作 */ function submitTo(url,func,extra){ switch(func){//submitTo交给哪个处理函数来处理 case 'add'://添加操作处理函数 add(url);//添加操作将有此函数来完成 break; case 'edit'://编辑操作处理函数 edit(url);//编辑操作将有此函数来完成 break; case 'del'://删除操作处理函数 del(url,true);//删除操作将有此函数来完成 参数2:true-批量删除 break; case 'sdel'://删除操作处理函数 del(url,false,extra);//参数1-url 参数2-单条数据删除 参数3-要删除的id break; case 'order'://排序操作处理函数 order(url); break; case 'grant'://授权操作处理函数 grant(url); break; case 'save'://保存操作处理函数 save(url); break; case 'backup'://备份操作处理函数 backup(url); break; case 'optimize'://优化操作处理函数 optimize(url); break; case 'upgrade'://更新操作处理函数 upgrade(url); break; case 'restore'://恢复操作处理函数 restore(url); break; case 'generate'://生成操作处理函数 generate(url); break; default: break; } } //下拉菜单 <select onclick="setClass(this)"></select> function setClass(t){ //alert($(t).val());//获取当前被选择的下拉菜单项的值 if($(t).val()==0){//*栏目的情况 $("#tclass").show(); }else{ $("#tclass").hide(); } } function setTid(t){ var obj = $(t).children("td").children("input"); if(obj.attr('checked')=='checked'){ obj.prop('checked',false); $(t).children("td").removeClass('listhover'); }else{ obj.prop('checked',true); $(t).children("td").addClass('listhover'); } } //全选 function checkAll(t,tname){ tname = tname?tname:'optid[]';//checkbox复选框name属性的值:<input type="checkbox" value="19" name="optid[]"> var tcheck = $(t).is(':checked');//全选复选框是否被选中,或者var tcheck = $('t').attr('checked');获取是否选中,返回的是checked或者是undefined,不是原来的true和false //$("input[name='"+tname+"']").attr('checked',tcheck);//设置选中,只在第一次的时候可是实现全选,第二次及以后将不能实现全选功能了,所以我们选择prop函数来代替attr函数 $("input[name='"+tname+"']").prop('checked',tcheck);//设置选中 } function checkAllMethod(t){ var tcheck = $(t).is(':checked'); //$("input[name*='_method']").attr('checked',tcheck);//设置选中,只在第一次的时候可是实现全选,第二次及以后将不能实现全选功能了,所以我们选择prop函数来代替attr函数 $("input[name*='_method']").prop('checked',tcheck);//可多次轮流切换 } //myfunc_helper.php文件中show_pages()分页函数使用到 function gotopage(num){ $("#currentpage").val(num);//input输入框中当前页码值 $('#formpage').attr('action',$("#action").val());//给名称为"formpage"表单的action属性动态赋值 $('#formpage').submit();//提交表单 } function nTabs(t,tid,listid,hover,listclass){ $(t).parent().children().removeClass(hover); $(t).addClass(hover); $("."+listclass).hide(); $("#"+listid+tid).show(); } /* *可参考:http://www.planeart.cn/demo/artDialog/_doc/plugin.iframe.html *可穿越框架的标准对话框属性的设置,可参考:http://www.planeart.cn/demo/artDialog/_doc/plugin.iframe.html#through */ function add(url){ //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var throughBox = $.dialog.through;//创建一个普通可穿越框架的标准对话框(框架,即:iframe),顶层面需要引用了artDialog才能实现穿越框架 var myDialog = throughBox({title:lang.add,lock:true});//设置对话框的属性:title-编辑 lock-是否锁定屏幕 //POST请求:将参数以post方式传递给服务器,如:"/admin/usergroup/add" //GET请求:将参数以get方式附加在url后面传递给服务器,如:"http://www.mycms.com/index.php?/admin/usergroup/add" //两种向服务器传递数据的方式在这里都是可以的,唯一不同的是POST是隐式提交,而GET则是将参数附加到url后面提交 //向服务器端提交少量数据时可以考虑使用GET方式,向服务器端提交大量数据时可以考虑使用POST方式 $.ajax({type: "POST",url:url,dataType:'json',//url:请求的目的地址,必须是一个字符串;dataType:想从服务器得到哪种类型的数据 success: function (data) {//请求成功后的处理函数 if(data.status==200){//状态码为200的情况 var win = $.dialog.top;//获取artDialog可用最高层window对象[top],可以用它来操作父页面对象(包括上面的对话框) //alert(win.document.title);//iframe框架的title标题:X6CMS后台管理中心 - Powered by X6CMS 2.2(20130305) //win.document.title="你伤害了我,还一笑而过";//动态的改变iframe的title标题值 myDialog.content(data.remsg);//设置可穿越框架的标准对话框的content内容属性值,为替换后的html模板代码 win.$("#formview").validform();//表单验证 var editors = setEditer(win);//渲染一个kindeditor编辑器,与kindeditor编辑器相关 setSubBtn(win,myDialog,'add',editors);//创建一个添加按钮 }else{ showmsg(myDialog,data);//短暂提示信息 } }, error:function(XMLHttpRequest, textStatus, errorThrown){ debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'add'); } }); } /* *可参考:http://www.planeart.cn/demo/artDialog/_doc/plugin.iframe.html *可穿越框架的标准对话框属性的设置,可参考:http://www.planeart.cn/demo/artDialog/_doc/plugin.iframe.html#through */ function edit(url){ //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var throughBox = $.dialog.through;//创建一个普通可穿越框架的标准对话框(框架,即:iframe),顶层面需要引用了artDialog才能实现穿越框架 var myDialog = throughBox({title:lang.edit+"...",lock:true});//设置对话框的属性:title-编辑 lock-是否锁定屏幕 //POST请求:将参数以post方式传递给服务器,如:"/admin/usergroup/edit/6" //GET请求:将参数以get方式附加在url后面传递给服务器,如:"http://www.mycms.com/index.php?/admin/usergroup/edit/6" //两种向服务器传递数据的方式在这里都是可以的,唯一不同的是POST是隐式提交,而GET则是将参数附加到url后面提交 //向服务器端提交少量数据时可以考虑使用GET方式,向服务器端提交大量数据时可以考虑使用POST方式 $.ajax({type: "POST",url:url,dataType: 'json',//url:请求的目的地址,必须是一个字符串;dataType:想从服务器得到哪种类型的数据 success: function (data) {//请求成功后的处理函数 //alert(url);//http://www.mycms.com/index.php?/admin/usergroup/edit/6 //alert(data.status);//当在后台点击"编辑"图标时,会执行此行代码 if(data.status==200){//状态码为200的情况 var win = $.dialog.top;//获取artDialog可用最高层window对象[top],可以用它来操作父页面对象(包括上面的对话框) //alert(win.document.title);//iframe框架的title标题:X6CMS后台管理中心 - Powered by X6CMS 2.2(20130305) //win.document.title="你伤害了我,还一笑而过";//动态的改变iframe的title标题值 myDialog.content(data.remsg);//设置可穿越框架的标准对话框的content内容属性值,为替换后的html模板代码 win.$("#formview").validform();//表单验证 var editors = setEditer(win);//渲染一个kindeditor编辑器,与kindeditor编辑器相关 setSubBtn(win,myDialog,'edit',editors);//创建一个 "编辑" 按钮 }else{//状态码为非200的情况 showmsg(myDialog,data);//短暂提示信息 } }, error:function(XMLHttpRequest, textStatus, errorThrown){//请求错误时的处理函数 debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'edit'); } }); } //批量删除 function del(url,ismultiple,tid){//参数2:true-批量删除 var data; //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 $.dialog.confirm(lang.delnotice, function(){//确定要删除数据吗? if(ismultiple){//批量删除 //serialize() 方法通过序列化表单值,创建URL编码文本字符串 data = $("#formlist").find("input:checked").serialize();//删除多条记录的情况,格式:"a=1&b=2&c=3&d=4&e=5" }else{ data = "optid="+tid;//删除单条记录的情况 } if(data==""){ $.dialog.tips(lang.pselect);//请选择记录 return; } this.close();//点击 "确定" 按钮后关闭窗口 this-代表confirm框 var win = $.dialog.top;//获取artDialog可用最高层window对象[top],可以用它来操作父页面对象(包括上面的对话框) var myDialog = win.$.dialog({fixed:true,lock:true,drag:false});//对话框 //data:serialize() 方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5" $.ajax({type: "POST",dataType:"json",url: url,data: data,//data:serialize() 方法通过序列化表单值,创建URL编码文本字符串 success: function(data){//请求成功后的处理函数 参数data:返回的数据 if(data.status==200){//状态码为200的情况 myDialog.close();//关闭对框框 //children():返回的是直接的子元素 $("#content_list").children().each(function(){ if($.isArray(data.ids)){//要批量删除的数据ids,一般情况下是一个数组 //<tr id="tid_1"></tr> //substr():返回一个从指定位置开始的指定长度的子字符串 //所以 this.id.substr(4)的值是1 this-代表每一个子元素 //jquery的inArray函数相等于php中的in_array()函数,都是用来判断当前元素是否在数组中存在 if($.inArray(this.id.substr(4),data.ids)>=0){ $(this).remove();//移除该当前<tr>标签 this代表当前<tr>标签 } }else{//单条删除的情况 if(this.id.substr(4)==data.ids){ $(this).remove();//移除该当前<tr>标签 } } }); $.dialog.tips(lang.opersuccess);//操作成功的短暂提示 }else{//状态码为非200的情况 showmsg(myDialog,data); } }, error:function(XMLHttpRequest, textStatus, errorThrown){ debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'del'); } }); }, function(){ $.dialog.tips(lang.unnotice); }); } //排序 function order(url){ //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var win = $.dialog.top;//获取artDialog可用最高层window对象[top],可以用它来操作父页面对象(包括上面的对话框) var myDialog = win.$.dialog({fixed:true,lock:true,drag:false}); var data = $("#formlist").serialize();//serialize() 方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5" $.ajax({type: "POST",dataType:dataType,url: url,data: data,//data:serialize() 方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5" success: function(data){//请求成功后的处理函数 参数data:返回的数据 if(data.status==200){//状态码为200的情况 myDialog.close();//关闭对话框 $("#content_list").html(data.remsg);//赋值 $.dialog.tips(lang.opersuccess);//操作成功的短暂提示 }else{//状态码为非200的情况 showmsg(myDialog,data); } }, error:function(XMLHttpRequest, textStatus, errorThrown){//请求失败后的处理函数 debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'order'); } }); } function grant(url){ //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var throughBox = $.dialog.through;//创建一个普通可穿越框架的标准对话框(框架,即:iframe),顶层面需要引用了artDialog才能实现穿越框架 var myDialog = throughBox({title:lang.grant,lock:true}); $.ajax({type: "POST",url:url,dataType: dataType, success: function (data) {//请求成功后的处理函数 参数data:返回的数据 if(data.status==200){//状态码为200的情况 var win = $.dialog.top;//获取artDialog可用最高层window对象[top],可以用它来操作父页面对象(包括上面的对话框) myDialog.content(data.remsg);//赋值 setSubBtn(win,myDialog,'grant',false);//创建一个 "授权" 按钮 }else{ showmsg(myDialog,data); } }, error:function(XMLHttpRequest, textStatus, errorThrown){//请求失败后的处理函数 debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'grant'); } }); } //debug模式 function debugging(tobj,url,XMLHttpRequest,textStatus,errorThrown,jsfunc){ var msg = '<table class="content_view"><tr><td width="110">Js Function:</td><td>function '+jsfunc+'(){}</td></tr>'; msg += '<tr><td width="110">URL:</td><td>'+url+'</td></tr>'; msg += '<tr><td>HTTP Status:</td><td>'+XMLHttpRequest.status+'</td></tr>'; msg += '<tr><td>readyStatus:</td><td>'+XMLHttpRequest.readyState+'</td></tr>'; msg += '<tr><td>textStatus:</td><td>'+textStatus+'</td></tr>'; msg += '<tr><td>errorThrown:</td><td>'+errorThrown+'</td></tr>'; msg += '<tr><td>help:</td><td>http://bbs.x6cms.com</td></tr>'; tobj.title('error'); tobj.content(msg); } /* *参考网址:http://kindeditor.net/ */ function setEditer(win){ if(win.$(".editor").length>0){//判断有几个kindeditor编辑器,alert(win.$(".editor").length)的值为1,即:有一个kindeditor编辑器 var editors = new Array();//创建一个数组 win.$(".editor").each(function(){ //对应模板中:<td colspan="5"><textarea style="width:668px;height:300px;" name="content" id="content" class="editor"><?=isset($view['content'])?htmlspecialchars($view['content']):'';?></textarea></td> var idname = this.id;//编辑器id属性值,如:alert(idname)的结果为 "content" //create方法创建一个可视化编辑器,参数1-节点id(id属性值) var editor=win.KindEditor.create('#'+idname,{ //指定浏览远程图片的服务器端程序 //指定浏览远程图片的服务器端程序 fileManagerJson:siteaurl+"/main/attrlist",//设置默认的后台程序处理文件:"http://www.cicms.com/index.php?/admin/main/attrlist",即:main控制器中的attrlist方法来处理 //配置图片分类目录下的不同目录参数,如果继续进行分类,可以传递?fd=xxoo/abc而这种参数,注意不要以/结束,程序未判断,以/结束程序会 //指定上传文件的服务器端程序 uploadJson:siteaurl+"/main/attrupload" ,//设置上传附件的后台程序处理文件:"http://www.cicms.com/index.php?/admin/main/attrupload",即:main控制器中的attrlist方法来处理 //true时显示浏览远程服务器按钮 allowFileManager:true//是否允许浏览服务器已上传文件 }); editors.push(editor);//向数组的尾部添加一个元素 }); return editors;//kindeditor编辑器不为空的情况 }else{ return false;//kindeditor编辑器为空的情况 } } //设置提交按钮:win-windows*对象,tobj-可穿越框架的标准对话框窗口,func-edit或add等,editors-kindeditor编辑器数组 function setSubBtn(win,tobj,func,editors){//设置提交按钮 //设置可穿越框架标准对话框的button按钮的属性值 tobj.button({name:lang.submit+"...",//button按钮的名称 callback:function(){//点击 "提交" 按钮后执行的回调函数 if(win.$("#formview").validform('validall')){//全局验证 if(editors){//编辑器存在的情况 var len = editors.length;//编辑器的个数 for(var i=0;i<len;i++){ editors[i].sync();//提交表单前,调用一下kindeditor编辑的sync()方法 } } //win-windows*对象,tobj-可穿越框架的标准对话框窗口,func-edit或add等 subOK(win,tobj,func); }else{ } return false; }, focus: true }); } //win-windows*对象,tobj-可穿越框架的标准对话框窗口,type-edit或add等 function subOK(win,tobj,type){ var data = win.$("#formview").serialize();//serialize() 方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5",提示:必须是要有name属性的表单字段会被序列化 //<input type="hidden" value="http://www.cicms.com/index.php?/admin/usergroup" id="action" name="action"> var url = win.$("#formview").find("#action").val()+'/'+type;//type:方法名,如:add、del、grant、edit //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var myDialog = win.$.dialog({fixed:true,lock:true,drag:false});//创建一个简单的对话框窗口 $.ajax({type: "POST",dataType:dataType,url: url,data: data,//data:serialize() 方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5" success: function(data){//请求成功后的处理函数 参数data:返回的数据 if(data.status==200){//状态码为200的情况 if(type=='add'){//如果为 add 操作 $("#content_list").prepend(data.remsg);//在id属性值为conent_list的元素开头插入内容 //以动画的方式 $('html,body').animate({scrollTop: 0}, 300); }else if(type=='edit'){//如果为 edit 操作 var thisline = $("#content_list").find("#tid_"+data.id);//查找当前被编辑的行 thisline.before(data.remsg);//在当前被编辑行前插入新的内容 thisline.remove();//将当前被编辑行移除 } myDialog.close();//简单对话框窗口关闭 tobj.close();//可穿越框架的标准对话框窗口关闭 $.dialog.tips(lang.opersuccess);//操作成功的短暂提示 }else{//状态码为非200的情况 showmsg(myDialog,data); } }, error:function(XMLHttpRequest, textStatus, errorThrown){//请求失败时的处理函数 debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'subOK'); } }); } //备份数据库 function backup(url){ //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var win = $.dialog.top;//window*窗口对象 //提示:serialize()方法只序列化有name属性的表单元素,没有name属性的表单元素是不被序列化的 var data = $("#formlist").serialize();//serialize()方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5",提示:必须是要有name属性的表单字段会被序列化 var myDialog = win.$.dialog({fixed:true,lock:true,drag:false});//创建一个简单的对话框窗口 $.ajax({type: "POST",dataType:dataType,url: url,data: data,//data:serialize() 方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5" success: function(data){//请求成功后的处理函数 参数data:返回的数据 if(data.status==200){//状态码为200的情况 myDialog.close();//简单对话框窗口关闭 $.dialog.tips(lang.opersuccess);//操作成功的短暂提示 }else{//状态码为非200的情况 showmsg(myDialog,data); } }, error:function(XMLHttpRequest, textStatus, errorThrown){//请求失败时的处理函数 debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'backup'); } }); } //优化 function optimize(url){ //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var win = $.dialog.top;//windows*窗口对象 //提示:serialize()方法只序列化有name属性的表单元素,没有name属性的表单元素是不被序列化的 var data = $("#formlist").serialize();//serialize()方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5",提示:必须是要有name属性的表单字段会被序列化 var myDialog = win.$.dialog({fixed:true,lock:true,drag:false});//创建一个简单的对话框窗口 $.ajax({type: "POST",dataType:dataType,url: url,data: data,//data:serialize()方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5" success: function(data){//请求成功后的处理函数 参数data:返回的数据 if(data.status==200){//状态码为200的情况 myDialog.close();//简单对话框窗口关闭 $.dialog.tips(lang.opersuccess);//操作成功的短暂提示 }else{//状态码为非200的情况 showmsg(myDialog,data); } }, error:function(XMLHttpRequest, textStatus, errorThrown){//请求失败时的处理函数 debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'optimize'); } }); } //执行sql升级 function upgrade(url){ if($("#formview").validform('validall')){//验证表单数据 //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var win = $.dialog.top;//windows*窗口对象 //提示:serialize()方法只序列化有name属性的表单元素,没有name属性的表单元素是不被序列化的 var data = $("#formview").serialize();//serialize()方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5",提示:必须是要有name属性的表单字段会被序列化 var myDialog = win.$.dialog({fixed:true,lock:true,drag:false});//创建一个简单的窗口对话框 $.ajax({type: "POST",dataType:dataType,url: url,data: data,//data:serialize()方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5" success: function(data){//请求成功后的处理函数 参数data:返回的数据 if(data.status==200){//状态码为200的情况 myDialog.close();//简单对话框窗口关闭 $.dialog.tips(lang.opersuccess);//操作成功的短暂提示 }else{//状态码为非200的情况 showmsg(myDialog,data); } }, error:function(XMLHttpRequest, textStatus, errorThrown){//请求失败时的处理函数 debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'upgrade'); } }); } } //恢复 function restore(url){ if($("#formview").validform('validall')){//验证所有表单数据 //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var win = $.dialog.top;//windows*窗口对象 //提示:serialize()方法只序列化有name属性的表单元素,没有name属性的表单元素是不被序列化的 var data = $("#formview").serialize();//serialize()方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5",提示:必须是要有name属性的表单字段会被序列化 var myDialog = win.$.dialog({fixed:true,lock:true,drag:false});//创建一个简单的窗口对话框 $.ajax({type: "POST",dataType:dataType,url: url,data: data,//data:serialize()方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5" success: function(data){//请求成功后的处理函数 参数data:返回的数据 if(data.status==200){//状态码为200的情况 myDialog.close();//简单对话框窗口关闭 $.dialog.tips(lang.opersuccess);//操作成功的短暂提示 }else{//状态码为非200的情况 showmsg(myDialog,data); } }, error:function(XMLHttpRequest, textStatus, errorThrown){//请求失败时的处理函数 debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'restore'); } }); } } //生成 网站地图 function generate(url){ if($("#formview").validform('validall')){//验证所有表单数据 //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var win = $.dialog.top;//windows*窗口对象 //提示:serialize()方法只序列化有name属性的表单元素,没有name属性的表单元素是不被序列化的 var data = $("#formview").serialize();//serialize()方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5",提示:必须是要有name属性的表单字段会被序列化 var myDialog = win.$.dialog({fixed:true,lock:true,drag:false});//创建一个简单的窗口对话框 $.ajax({type: "POST",dataType:dataType,url: url,data: data,//data:serialize()方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5" success: function(data){//请求成功后的处理函数 参数data:返回的数据 if(data.status==200){//状态码为200的情况 myDialog.close();//简单对话框窗口关闭 $.dialog.tips(lang.opersuccess);//操作成功的短暂提示 }else{//状态码为非200的情况 showmsg(myDialog,data); } }, error:function(XMLHttpRequest, textStatus, errorThrown){//请求失败时的处理函数 debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'generate'); } }); } } //保存 function save(url){ if($("#formview").validform('validall')){//验证所有表单数据 //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var win = $.dialog.top;//windows*窗口对象 //提示:serialize()方法只序列化有name属性的表单元素,没有name属性的表单元素是不被序列化的 var data = $("#formview").serialize();//serialize()方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5",提示:必须是要有name属性的表单字段会被序列化 var myDialog = win.$.dialog({fixed:true,lock:true,drag:false});//创建一个简单的窗口对话框 $.ajax({type: "POST",dataType:dataType,url: url,data: data,//data:serialize()方法通过序列化表单值,创建URL编码文本字符串,格式:"a=1&b=2&c=3&d=4&e=5" success: function(data){//请求成功后的处理函数 参数data:返回的数据 if(data.status==200){//状态码为200的情况 myDialog.close();//简单对话框窗口关闭 $.dialog.tips(lang.opersuccess);//操作成功的短暂提示 }else{//状态码为非200的情况 showmsg(myDialog,data); } }, error:function(XMLHttpRequest, textStatus, errorThrown){//请求失败时的处理函数 debugging(myDialog,url,XMLHttpRequest,textStatus,errorThrown,'save'); } }); } } function shouquan(url){ //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 $.dialog({title:lang.edit,lock:true, content:lang.loading, init:function(){ var thisobj = this; $.ajax({type: "POST",url: url,dataType:'json', success: function(data){ if(data.status==200){ thisobj.content(data.remsg); thisobj.button({ name:lang.submit, callback: function () { subOK(thisobj,'shouquan'); return false; }, focus: true }); }else{ thisobj.close(); showmsg(data); } } }); } }); } //审核 function audit(url,ismultiple,tid){ var data; //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 $.dialog.confirm(lang.auditnotice, function(){ if(ismultiple){ data = $("#formlist").find("input:checked").serialize(); }else{ data = "optid="+tid; } if(data==""){ $.dialog.tips(lang.pselect); return; } $.dialog({title:lang.audit,lock:true, content:lang.loading, init:function(){ var thisobj = this; $.ajax({ type: "POST", url: url, dataType: dataType, data: data, success: function(data){ if(data.status==200){ thisobj.close(); $("#content_list").children().each(function(){ if(this.id.substr(4)==data.id){ $(this).before(data.remsg); $(this).remove(); } }); $.dialog.tips(lang.opersuccess); }else{ thisobj.close(); showmsg(data); } } }); } }); }, function(){ $.dialog.tips(lang.unnotice); }); } //后台编辑模板文件 //<a class="file" href="javascript:editfile('http://www.cicms.com/index.php?/admin/template/editfile','./data/template/default/article_list.php')">article_list.php</a> //参数1-编辑模板文件的控制器方法;参数2-要被编辑的模板文件的路径 function editfile(url,page){ //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var win = $.dialog.top;//windows*窗口对象 win.$.dialog({title:lang.edit,lock:true, content:lang.loading, init:function(){ var thisobj = this;//this代表是对话框窗口对象 $.ajax({ type: "POST", url: url,//请求url:"http://www.cicms.com/index.php?/admin/template/editfile" data:"actiontype=0&page="+page,//参数:"actiontype=0&page=./data/template/default/article_list.php" dataType: dataType,//json success: function(data){//data:返回正在被编辑的模板文件内容 if(data.status==200){//状态码为200的情况 thisobj.content(data.remsg);//将模板文件内容赋值给对话框窗口的content属性 thisobj.button({//为对话框窗口对象创建一个按钮 name:lang.submit,//提交按钮 callback: function () {//点击 "提交" 按钮时调用的函数 subOK(win,thisobj,'editfile'); return false; }, focus: true }); }else{//状态码为非200的情况 thisobj.close();//关闭对话框窗口 showmsg(data); } }, error:function(XMLHttpRequest, textStatus, errorThrown){ alert(errorThrown); } }); } }); } //取消图片,如:<input type="button" value="取消图片" onclick="unsetThumb('thumb','imgthumb')" class="btn"> //使用场合:文章模型-添加文章内容页面 function unsetThumb(objid,imgobjid){ //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 var win = $.dialog.top;//windows*窗口对象 win.$("#"+objid).val('');//将thumb隐藏表单元素的值设置为空,如:<input type="hidden" value="" id="thumb" name="thumb"> win.$("#"+imgobjid).attr('src',win.baseurl+'data/nopic8080.gif');//将缩略图设置为默认的图片,如:<img width="150" id="imgthumb" onclick="uploadpic(this,'thumb')" src="http://www.cicms.com/data/nopic8080.gif"> } /* * status * 200 正常 * 201:(登录失效) * 202:(无权限) * 203:(请选择记录) * 204:(用户名或密码错误) * 205:(提交成功,需刷新本页面) * 206:(记录重复) * 207:(提交成功,但是验证失败,弹出错误消息) * 301:提交成功,需要跳转页面 * 404:该页不存在; */ function showmsg(tobj,data){//参数1-可穿越框架的标准对话框 data-数据 if(isdebugging){//调试模式 alert(data);return; } if(data.status==201){//状态码201:登录失效 tobj.close();//关闭可穿越框架的标准对话框 showajaxlogin(); }else if(data.status==202){//状态码202:无权限 tobj.close();//关闭可穿越框架的标准对话框 $.dialog.tips(lang.nopurivew);//短暂提示:无权限;参数: 内容、显示时间(单位秒, 默认1.5) }else if(data.status==203){//状态码203:请选择记录 tobj.close();//关闭可穿越框架的标准对话框 $.dialog.tips(lang.pselect);//短暂提示:请选择记录;参数: 内容、显示时间(单位秒, 默认1.5) }else if(data.status==204){//状态码204:用户名或密码错误 tobj.close();//关闭可穿越框架的标准对话框 $.dialog.tips(lang.userorpasserror);//短暂提示:用户名或密码错误;参数: 内容、显示时间(单位秒, 默认1.5) }else if(data.status==205){//状态码205:提交成功,需刷新本页面 tobj.close();//关闭可穿越框架的标准对话框 location.reload();//短暂提示:提交成功,需刷新本页面;参数: 内容、显示时间(单位秒, 默认1.5) }else if(data.status==206){//状态码206:记录重复 tobj.close();//关闭可穿越框架的标准对话框 $.dialog.tips(lang.duplicate);//短暂提示:记录重复;参数: 内容、显示时间(单位秒, 默认1.5) }else if(data.status==207){//状态码207:提交成功,但是验证失败,弹出错误消息 tobj.close();//关闭可穿越框架的标准对话框 $.dialog.tips(data.remsg);//短暂提示:提交成功,但是验证失败,弹出错误消息;参数: 内容、显示时间(单位秒, 默认1.5) }else if(data.status==301){//状态码301:提交成功,需要跳转页面 tobj.close();//关闭可穿越框架的标准对话框 location.href=data.reurl;//短暂提示:提交成功,需要跳转页面;参数: 内容、显示时间(单位秒, 默认1.5) }else if(data.status==404){//状态码404:该页不存在 tobj.close();//关闭可穿越框架的标准对话框 $.dialog.tips(lang.notfound);//短暂提示:该页不存在;参数: 内容、显示时间(单位秒, 默认1.5) }else{//其它情况 tobj.close();//关闭可穿越框架的标准对话框 $.dialog.tips(data.remsg); } } function showajaxlogin(){ //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 $.dialog({title:lang.login,lock:true, content:lang.loading, init:function(){ var thisobj = this; $.ajax({ type: "GET", url: siteaurl+'/login/ajaxlogin', dataType: dataType, cache:false, success: function(data){ if(data.status==200){ thisobj.content(data.remsg); thisobj.button({ name:lang.login, callback: function () { var postdata = $("#ajaxlogin").serialize(); $.ajax({ type: "POST", url: siteaurl+'/main/ajaxlogin', dataType: dataType, data:postdata, cache:false, success:function(data){ if(data.status==200){ thisobj.close(); $.dialog.tips(lang.opersuccess); }else{ showmsg(data); } } }); return false; }, focus: true }); }else{ thisobj.close(); showmsg(data); } } }); } }); } //上传图片,如:<img width="150" id="imgthumb" onclick="uploadpic(this,'thumb')" src="http://www.cicms.com/data/nopic8080.gif"> //使用场合:文章模型-添加内容页面 function uploadpic(t,picid){//t-this,在这里代表id属性值为"imgthumb"的表单元素 //如果你需要创建一个可视化编辑器,你需要使用K.create(),格式:create('节点id',选项) //如果你仅仅是想初始化一个kindeditor对象,但并不希望创建可视化编辑器,只是想利用它的框架,api等,你可以选择 K.editor(),格式:editor(选项) //其实在create()方法中也包含了 new editor() 这个环节 var editor = KindEditor.editor({ //指定浏览远程图片的服务器端程序 fileManagerJson:siteaurl+"/main/attrlist",//设置默认的后台程序处理文件:"http://www.cicms.com/index.php?/admin/main/attrlist",即:main控制器中的attrlist方法来处理 //配置图片分类目录下的不同目录参数,如果继续进行分类,可以传递?fd=xxoo/abc而这种参数,注意不要以/结束,程序未判断,以/结束程序会 //指定上传文件的服务器端程序 uploadJson:siteaurl+"/main/attrupload",//设置上传附件的后台程序处理文件:"http://www.cicms.com/index.php?/admin/main/attrupload",即:main控制器中的attrlist方法来处理 //true时显示浏览远程服务器按钮 allowFileManager : true//是否允许浏览服务器已上传文件 }); editor.loadPlugin('image', function() {//加载上传图片的插件 editor.plugin.imageDialog({ imageUrl : KindEditor('#'+picid).val(),//获取缩略图的路径,如:<input type="hidden" value="data/attachment/image/20140321/6a93ea1041a1edf6a3ebadafb6e762f3.jpg" id="thumb" name="thumb"> clickFn : function(url, title, width, height, border, align) { newurl = url.substr(url.indexOf("data"));//如:"data/attachment/image/20140321/6a93ea1041a1edf6a3ebadafb6e762f3.jpg" $('#'+picid).val(newurl); if(t){//t-this,在这里代表id属性值为"imgthumb"的表单元素 $(t).attr('src',url);//重新设置id属性值为"imgthumb"的表单元素的src属性值 } editor.hideDialog();//编辑器隐藏对话框 } }); }); } //上传文件,如down.php模型中的:<input type="button" onclick="uploadfile('attrurl','attrname')" class="btn" value="选择文件"> //使用场合:下载模型-添加内容页面 function uploadfile(fileid,filename){ //如果你需要创建一个可视化编辑器,你需要使用K.create(),格式:create('节点id',选项) //如果你仅仅是想初始化一个kindeditor对象,但并不希望创建可视化编辑器,只是想利用它的框架,api等,你可以选择 K.editor(),格式:editor(选项) //其实在create()方法中也包含了 new editor() 这个环节 var editor = KindEditor.editor({ //指定浏览远程图片的服务器端程序 fileManagerJson:siteaurl+"/main/attrlist",//设置默认的后台程序处理文件:"http://www.cicms.com/index.php?/admin/main/attrlist",即:main控制器中的attrlist方法来处理 //配置图片分类目录下的不同目录参数,如果继续进行分类,可以传递?fd=xxoo/abc而这种参数,注意不要以/结束,程序未判断,以/结束程序会 //指定上传文件的服务器端程序 uploadJson:siteaurl+"/main/attrupload",//设置上传附件的后台程序处理文件:"http://www.cicms.com/index.php?/admin/main/attrupload",即:main控制器中的attrlist方法来处理 //true时显示浏览远程服务器按钮 allowFileManager : true//是否允许浏览服务器已上传文件 }); editor.loadPlugin('insertfile', function() {//加载插入文件插件 editor.plugin.fileDialog({ fileUrl : KindEditor('#'+fileid).val(), clickFn : function(url,title) { if($.trim(title)==url){ title=''; } newurl = url.substr(url.indexOf("data"));//如:"data/attachment/image/20140321/6a93ea1041a1edf6a3ebadafb6e762f3.jpg" $('#'+fileid).val(newurl);//如:"data/attachment/image/20140321/6a93ea1041a1edf6a3ebadafb6e762f3.jpg" if(filename!=''){//不为空的情况,如:<input type="text" value="" class="input-text" id="attrname" name="attrname"> $('#'+filename).val(title);//为文件名赋值 } editor.hideDialog();//隐藏对话框 } }); }); } //颜色选择器列表:t-"this" colorid:"color" textid:"title" //使用场合-文章模型等-给title设置颜色 function colorpicker(t,colorid,textid){ //颜色数组 var colorarr = new Array("#000000","#000000","#000000","#000000","#003300","#006600","#009900","#00cc00","#00ff00","#330000","#333300","#336600","#339900","#33cc00","#33ff00","#660000","#663300","#666600","#669900","#66cc00","#66ff00","#000000","#333333","#000000","#000033","#003333","#006633","#009933","#00cc33","#00ff33","#330033","#333333","#336633","#339933","#33cc33","#33ff33","#660033","#663333","#666633","#669933","#66cc33","#66ff33","#000000","#666666","#000000","#000066","#003366","#006666","#009966","#00cc66","#00ff66","#330066","#333366","#336666","#339966","#33cc66","#33ff66","#660066","#663366","#666666","#669966","#66cc66","#66ff66","#000000","#999999","#000000","#000099","#003399","#006699","#009999","#00cc99","#00ff99","#330099","#333399","#336699","#339999","#33cc99","#33ff99","#660099","#663399","#666699","#669999","#66cc99","#66ff99","#000000","#cccccc","#000000","#0000cc","#0033cc","#0066cc","#0099cc","#00cccc","#00ffcc","#3300cc","#3333cc","#3366cc","#3399cc","#33cccc","#33ffcc","#6600cc","#6633cc","#6666cc","#6699cc","#66cccc","#66ffcc","#000000","#ffffff","#000000","#0000ff","#0033ff","#0066ff","#0099ff","#00ccff","#00ffff","#3300ff","#3333ff","#3366ff","#3399ff","#33ccff","#33ffff","#6600ff","#6633ff","#6666ff","#6699ff","#66ccff","#66ffff","#000000","#ff0000","#000000","#990000","#993300","#996600","#999900","#99cc00","#99ff00","#cc0000","#cc3300","#cc6600","#cc9900","#cccc00","#ccff00","#ff0000","#ff3300","#ff6600","#ff9900","#ffcc00","#ffff00","#000000","#00ff00","#000000","#990033","#993333","#996633","#999933","#99cc33","#99ff33","#cc0033","#cc3333","#cc6633","#cc9933","#cccc33","#ccff33","#ff0033","#ff3333","#ff6633","#ff9933","#ffcc33","#ffff33","#000000","#0000ff","#000000","#990066","#993366","#996666","#999966","#99cc66","#99ff66","#cc0066","#cc3366","#cc6666","#cc9966","#cccc66","#ccff66","#ff0066","#ff3366","#ff6666","#ff9966","#ffcc66","#ffff66","#000000","#ffff00","#000000","#990099","#993399","#996699","#999999","#99cc99","#99ff99","#cc0099","#cc3399","#cc6699","#cc9999","#cccc99","#ccff99","#ff0099","#ff3399","#ff6699","#ff9999","#ffcc99","#ffff99","#000000","#00ffff","#000000","#9900cc","#9933cc","#9966cc","#9999cc","#99cccc","#99ffcc","#cc00cc","#cc33cc","#cc66cc","#cc99cc","#cccccc","#ccffcc","#ff00cc","#ff33cc","#ff66cc","#ff99cc","#ffcccc","#ffffcc","#000000","#ff00ff","#000000","#9900ff","#9933ff","#9966ff","#9999ff","#99ccff","#99ffff","#cc00ff","#cc33ff","#cc66ff","#cc99ff","#ccccff","#ccffff","#ff00ff","#ff33ff","#ff66ff","#ff99ff","#ffccff","#ffffff"); //颜色个数 var len = colorarr.length; //颜色字符串,所有的颜色都放在colorstr字符串内,每行20中颜色,每中颜色都放在一个<td></td>标签中 var colorstr = '<table class="colorpicker" border="0"><tr><td colspan="21" height="22" class="currentColor"></td></tr><tr>'; for(var i=0;i<len;i++){//颜色分组,每20种颜色放一行 if(i==21||i==42||i==63||i==84||i==105||i==126||i==147||i==168||i==189||i==210||i==231){ colorstr+="</tr><tr>" } colorstr+='<td style="background-color: '+colorarr[i]+';" width="11" height="11" rel="'+colorarr[i]+'" onMouseOver="colorover(this)" onclick="colorclick(this,\''+colorid+'\',\''+textid+'\')"></td>'; } colorstr +='</tr></table>'//整个颜色放在一个<table></table>标签中 //artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间 $.dialog({ id:'colorpicker', follow:t,//this title:lang.colorpicker,//取色器 drag: false, resize: false, padding:'0 0', lock: true,//锁定 opacity: 0,//透明度 content: colorstr,//内容 button: [{//创建一个button按钮 name:lang.clearcolor,//按钮名称:清除颜色 callback: function () {//点击 "清除颜色" 按钮时所调用的函数 $("#"+colorid).val('');//colorid的值:"color" $("#"+textid).css('color','');//textid的值:"title" } }] }); } //鼠标经过时颜色的变化 //使用场合:文章模型等-给title设置颜色 function colorover(t){//t-this var color=$(t).attr('rel');//鼠标所在的颜色位置 $(t).parent().parent().find(".currentColor").css('background-color',color);//切换当前颜色 } //单击某一个颜色时出发的函数:t-"this" colorid:"color" textid:"title" //使用场合:文章模型等-给title设置颜色 function colorclick(t,colorid,textid){ var color=$(t).attr('rel');//当前选择的颜色值 $(t).parent().parent().find(".currentColor").css('background-color',color);//将当前颜色设置为选择的颜色 $("#"+colorid).val(color); if(textid){ $("#"+textid).css('color',color);//设置标题的颜色 } $.dialog({id:'colorpicker'}).close();//取色器窗口关闭 } //进入下一级目录:后台->模板文件(模板套系)->进入某一个目录时执行的函数 function enterdir(folder){//如:<a class="folder" href="javascript:enterdir('./data/template/default/css')">css</a> if(folder==''){//文件夹为空的情况 var folder = $("#folder").val(); var s = folder.lastIndexOf("/"); var folder = folder.substr(0,s); } $("#folder").val(folder);//如:<input type="hidden" value="./data/template/default" id="folder" name="folder"> $("#formlist").submit();//提交表单 } //调用validform方法:win.$("#formview").validform();//表单验证 (function($) { $.fn.validform = function(type){ var options = new Array();//创建一个数组对象 var methods = { init:function(){//初始化 //表单字段class属性值为"validate"的表单字段,但在被验证范围内 //如:<select name="category" id="category" class="validate" validtip="required"></select> var validfields = form.find(".validate").each(function(){ options.push(this); $(this).bind('blur',function(){//失去焦点时会进行验证 methods.testing(this);//this代表当前表单字段 }); }); }, back:function(form){//验证的表单,可参考:form = this;//将this(即:formview表单)赋值给form var isvalidok = true;//是否验证通过,初始值为true var firstobj;//第一个没有验证通过的表单字段 form.find(".validate").each(function(){ if(!methods.testing(this)){//验证未通过 if(isvalidok){ firstobj = this;//第一个未被验证通过的表单字段 } isvalidok = false;//将验证标识设置为false } }); if(!isvalidok){//没有验证通过的情况 $('html,body').animate({scrollTop: $(firstobj).prev().offset().top}, 300); $(firstobj).focus();//没有验证通过的表单字段得到焦点 } return isvalidok; }, testing:function(obj){ //如:<select name="category" id="category" class="validate" validtip="required"></select> var rules = $(obj).attr('validtip');//获取验证提示属性值,如:validtip="required" var val = $(obj).val();//获取当前表单字段的值 var rulearr = rules.split(",");//有可能有多个验证条件:validtip="required,required,required,required" var len = rulearr.length;//验证条件个数,一般情况下值为1 var msg = '';//提示信息 var isrequire = rules.indexOf("required")>=0?true:false;//是否要求验证 for(var i=0;i<len;i++){ var rule = rulearr[i].split(":"); switch(rule[0]){ case "required"://不为空等验证 msg+=methods.required(obj,val); break; case "minsize"://最小值 msg+=methods.minsize(val,rule[1],isrequire);//可能是这种情况:validtip="minsize:5,maxsize:10" break; case "maxsize"://最大值 msg+=methods.maxsize(val,rule[1],isrequire);//可能是这种情况:validtip="minsize:5,maxsize:10" break; case "email"://邮箱验证 msg+=methods.email(val,isrequire);//可能是这种情况:validtip="minsize:5,maxsize:10" break; case "equals"://是否相等验证 msg+=methods.equals(val,rule[1]);//可能是这种情况:validtip="minsize:5,maxsize:10" default: break; } } if($(obj).prev().hasClass("parentFormformID")){ $(obj).prev().remove();//删除上一个同级别元素,即:删除错误提示信息 } if(msg!=''){//提示信息不为空的情况 methods.showmsg(obj,msg);//调用methods对象的showmsg方法,参数1-当前被验证的表单字段 参数2-提示信息 return false;//返回false }else{ return true;//返回true } }, required:function(obj,val){//参数1-当前被验证的表单字段 参数2-当前表单字段的值 if(val==''){//值为空的情况 if($(obj).is("input")){//是否为input表单字段 //参考语言包文件:"js/language/zh_en.js" return lang.validform.required.text+"<br>";//此处内容不可为空 }else if($(obj).is("select")){ //参考语言包文件:"js/language/zh_en.js" return lang.validform.required.select+"<br>";//请选择一个项目 }else{ //参考语言包文件:"js/language/zh_en.js" return lang.validform.required.text+"<br>";//此处内容不可为空 } } return '';//值为非空的情况 }, minsize:function(val,dlen,isrequire){ if(val==""&&!isrequire){ return ''; } var len = val.length;//长度值 if(len<dlen){//长度值小于最小值的情况 //参考语言包文件:"js/language/zh_en.js" return lang.validform.min.text+dlen+lang.validform.min.text1+"<br>";//最少几个字符 } return ''; }, maxsize:function(val,dlen,isrequire){ if(val==""&&!isrequire){ return ''; } var len = val.length;//长度值 if(len>dlen){//长度值大于最大值的情况 //参考语言包文件:"js/language/zh_en.js" return lang.validform.max.text+dlen+lang.validform.max.text1+"<br>";//最多几个字符 } return ''; }, email:function(val,isrequire){ if(val==""&&!isrequire){ return ''; } var regex = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i; if(!regex.test(val)){//邮箱是否有效 //参考语言包文件:"js/language/zh_en.js" return lang.validform.email.text+"<br>";//邮件地址无效 } return ''; }, equals:function(val,equalsid){ if(val!=$("#"+equalsid).val()){//验证密码是否相等,equalsid值为password //参考语言包文件:"js/language/zh_en.js" return lang.validform.equals.text+"<br>";//请输入与上面相同的密码 } return ''; }, showmsg:function(obj,msg){//参数1-当前被验证的表单字段 参数2-错误提示信息 //错误提示信息 var msgcontent = '<div class="reqformError parentFormformID formError"><div class="formErrorContent">'+msg+'<br /></div><div class="formErrorArrow"><div class="line10"></div><div class="line9"><!-- --></div><div class="line8"><!-- --></div><div class="line7"><!-- --></div><div class="line6"><!-- --></div><div class="line5"><!-- --></div><div class="line4"><!-- --></div><div class="line3"><!-- --></div> <div class="line2"><!-- --></div><div class="line1"><!-- --></div></div></div>'; $(obj).before(msgcontent);//在当前被验证的表单字段前输出错误提示信息 var objprev = $(obj).prev();//检测前一个同胞元素 objprev.css('margin-top','-'+objprev.height()+'px');//向上移 objprev.css('margin-left',($(obj).width()-20)+'px');//向左移 objprev.bind('click',function(){//绑定click事件 $(this).remove();//当单击 "错误提示信息" 时删除该错误提示信息区域标签元素 }); } };//结束methods对象定义 if(!this.is("form")){//判断是否为"form"表单,对应win.$("#formview").validform()中的formview alert(validform.onlyform);//只能为form表单 return false;//返回false } form = this;//将this(即:formview表单)赋值给form if(type=='validall'){//验证所有 return methods.back(form); }else{ methods.init(form);//调用methods兑现的init初始化方法 } }; })(jQuery);