牛骨文教育服务平台(让学习变的简单)

第十一课 iWebShop 系统内置 JS的使用

上节课程我们讲到:

iWebShop 系统默认提供了大量的优秀 JS 工具和插件,比如日历,jquery,artDialog 弹出框 UI,artTemplate模板引擎等等…所有系统内置的 JS 都在libwebjsjspackage_class.php 有兴趣的用户可以自己扩展一些常用工具,在模板里面引用更为简单。

这次课程我就说明一下有哪些常用的JS工具,由于每一个JS工具的用法都能写一本帮助文档,所以这里只介绍JS工具的功能及用法

一、iWebShop使用了哪些JS工具

打开libwebjsjspackage_class.php 文件,文件开头就是以下代码:

//系统JS注册表
	private static $JSPackages = array(
		"jquery" => array(
			"js" => array(
				"jquery/jquery-1.11.3.min.js",
				"jquery/jquery-migrate-1.2.1.min.js"
			)
		),

		"form" => array("js" => "form/form.js"),

		"dialog" => array(
			"js" => array(
				"artdialog/artDialog.js",
				"artdialog/plugins/iframeTools.js"
			),
			"css" => "artdialog/skins/aero.css"
		),

		"kindeditor" => array(
			"js" => array(
				"editor/kindeditor-min.js",
				"editor/lang/zh_CN.js"
			),
			"callback" => "initKindEditior"
		),

		"validate" => array(
			"js"=>"autovalidate/validate.js",
			"css"=>"autovalidate/style.css"
		),

		"my97date" => array("js" => "my97date/wdatepicker.js"),

		"artTemplate" => array(
			"js" => array(
				"artTemplate/artTemplate.js",
				"artTemplate/artTemplate-plugin.js"
			)
		),
		"cookie" => array("js" => "cookie/jquery.cookie.js"),

		"admanage" => array("js" => "admanage/adloader.js"),

		"chart" => array("js" => "highcharts/highcharts.js"),
	);

每一种JS工具的源码放在 libwebjssource下面。如果要做扩展,就修改jspackage_class.php,在source下增加相应的JS文件,就可以调用了。

二、JS工具介绍

adloader.js

iwebshop自己开发的广告加载器,60行的代码,很简洁。要使用广告的页面记得要引入这个js文件,广告的设置在管理员后台

autovalidate

iWebShop开发的表单验证插件。

form.js

这个也是iWebShop自己开发的插件,主要完成表单回写的功能,在表单初始化时用比较多。

jquery

目前应用最广的JS库,好多第三方的工具都是基于jqurey开发的。

artdialog

对话框组件,详细用法可看:http://lab.seaning.com/

artTemplate

性能很好的javascript 模板引擎 https://github.com/aui/artTemplate

jquery.cookie

对cookie进行操作的工具:https://github.com/carhartl/jquery-cookie

kindeditor

一个富文件框的编辑器:http://kindeditor.net/doc.php

highcharts

一个图表工具:http://www.hcharts.cn/

my97date

日期控件:http://www.my97.net/

三、validate.js,form.js的使用

这两个js文件是为iWebShop量身定做的,下面就通过官方提供的例子说明这两个js的使用方法。

validate.js

首先要通过 js 标签引入此插件:{js:validate}

form 表单中的 input 标签中 type 为 text,password,select-one,textarea 中添属性pattern 和 alt 属性系统将会自动添加验证功能
如:对 email 的验证,在视图文件里编写如下代码:

{js:validate}
<form>
<input name="email" pattern="email" alt="请输入正确的 email">
</form>

运行效果如下:
当你输入不正确的格式时,效果如下图所示:

当你输入正确的格式时,如下图所示:

对于 pattern 的正则系统对常用的正则都作了一些封装如: required, email, qq , id, ip , zip, phone, mobi ,url ,date,datetime ,int ,float 等等,
如果以上还没能满足你的要求,则用户可以自己写正则,如我想让用户输入一个 3-5 位的数字:则修改代码

<input name="email" pattern="^d{3,5}" alt="请输入一个 3-5 位的数字">

运行效果:

填写正确:

另外要注意,要验证时,隐藏输入项目会失效,不进行验证处理!
就是这么简单,那么用户如果想在验证完后再运行自己的 js 函数怎么办?
修改 文件

{ js:validate}
<form callback="test("回调一下")">
<input name="email" pattern="^d{3,5}" alt="请输入一个 3-5 位的数字">
<input type="submit"/>
</form>
<script>
function test(txt)
{
    alert(txt);
    return false;
}
</script>

然后点击提交按钮:

这里要解释一下回调函数的 return true 和 false
如果返回的是 true,表单通过验证后,表单将提交,不通过将不提交。
如果返回的是 false,则无论表单是否通过表单都将不会被提交。

下面再说一下 form.js 文件,这个主要是完成表单回写功能的,比方说,你想让表单里的项目初始化一些值

修改文件:

{ js:form}
<form name="test">
<input name="email" ></br>
<input type="radio" name="sex" value="1">男<input type="radio" name="sex"
value="0">女</br>
<input type="checkbox" name="live" value="a">看书<input type="checkbox"
name="live" value="b">打球</br>
<select name="code">
<option value="c++">c++</option>
<option value="java">java</option>
<option value="php">php</option>
</select>
<input type="submit"/>
</form>
<script>
var form = new Form("test");
form.init({"email":"a@a.com","sex":"1","live":"a;b","code":"php"});
</script>

运行效果如下:

同样也可以用 getItems 取得表单里所有数据的对象。也可以用 setValue(name,value)
的方式只给一个设置对应的值,也可以通过 getValue(name)得到对应项的值。
要注意的两点:
1、多选的时候是用 ; 号来分开的。
2、此 form 插件不能对 file 字段进行处理。

如有不明白的地方,留言或是加入我们 “三众技术QQ交流群”一起讨论

关于我们

三众科技资讯平台——大道至简,悦你所阅!
>本教程由三众简悦原创,转载请注明出处,作者:bobball,由bobo整理成牛骨文书籍

三众技术交流群:543102562

欢迎大家加入我们,共同讨论IT,互联网技术。同时可以扫描下面的二维码关注我们,谢谢!

三众科技服务号