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

时间:2021-08-13 05:37:31
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);