【js与jquery】研究了下这个不错的jquery代码

    xiaoxiao2021-04-12  33

    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 οnclick="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="取消图片" οnclick="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" οnclick="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" οnclick="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" οnclick="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)" οnclick="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 );
    转载请注明原文地址: https://ju.6miu.com/read-668284.html

    最新回复(0)