首页
IT
登录
6mi
u
盘
搜
搜 索
IT
【js与jquery】研究了下这个不错的jquery代码
【js与jquery】研究了下这个不错的jquery代码
xiaoxiao
2021-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
)