posts - 165,  comments - 876,  trackbacks - 41

       其实JQuery已经提供了很多基于Ajax的调用方法,那为什么还要做这样一个Ajax插件呢!其实目的很简单就是为了调用更方便。这个插件的特点就是允许通过HTML属性描述来进行一个Ajax操作的定义;也就是说通过使该插件只要简单的属性描述就能实现Ajax请求和局部更新的功能。

首先做一个小例程来看一下插件基础功能:

    <input ajaxupdater="url:Sink1Page.aspx;updater:updater1" ajaxparams="State:AttributePost" type="button" value="AjaxUpdate" />

    <div id="updater1">

   

    </div>

    <div id="updater2">

        &nbsp;</div>

    </form>

    <script>

        $('#updater2').AjaxUpdater({url:'Sink1Page.aspx'},{State:'ScriptPost'});

    </script>

上面HTML描述了两个Ajax请求:

第一个是描述Button在点击后引发Ajax请求并把请求的内容更新到updater1DIV中。

第二个就是页面加载后进行Ajax请求并把请求的内容更新到updater2DIV中。

功能似乎很简单调用过程和JQuery具备的Ajax方法差别不大。接下来做个相对复杂又比较常用的Ajax请求,通过HTML属性描述一个基于Ajax的用户注册信息提交的功能(包括数据验证处理)。为了得到验证功能必须把之前做的验证插件引进来。

相关处理脚本文件引用:

    <script src=jquery-latest.js></script>

    <script src=validator.js></script>

<script src =AjaxUpdater.js></script>

具本定义的HTML代码:

        <table id="table1">

            <tr>

                <td style="width: 100px">

                    用户名</td>

                <td style="width: 100px">

                    <input id="Text1" type="text" validator="type:string;nonnull:true;tip:请输入用户名!" />

                                     </td>

            </tr>

            <tr>

                <td style="width: 100px">

                    性别</td>

                <td style="width: 100px">

                    <select id="Select1" validator="type:string;nonnull:true;tip:请选择性别!">

                        <option value=""></option>

                        <option value=""></option>

                    </select>

                </td>

            </tr>

            <tr>

                <td style="width: 100px">

                    出生日期</td>

                <td style="width: 100px">

                    <input id="Text2" type="text" validator="type:date;nonnull:true;tip:请输入出生日期!" /></td>

            </tr>

            <tr>

                <td style="width: 100px">

                    邮件地址</td>

                <td style="width: 100px">

                    <input id="Text3" type="text" validator="type:string;regex:\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*;nonnull:true;tip:请输入邮件地址!" /></td>

            </tr>

            <tr>

                <td style="width: 100px">

                </td>

                <td style="width: 100px">

                    <input id="Button1" ajaxupdater="url:Sink2Page.aspx;updater:update1;validator:table1"

                     ajaxparams="username:#Text1;sex:#Select1;birthdate:#Text2;email:#Text3"

                     type="button" value="注册" /></td>

            </tr>

        </table>

        <dir id="update1">

            </dir>

HTML代码中的每个输入元素都定义了validator属性,它是用于提供给validator.js脚本进行验证处理用的。接下来就是通过属性描述一个Ajax把数据提交并更新的相关元素功能:

<input id="Button1" ajaxupdater="url:Sink2Page.aspx;updater:update1;validator:table1"

                     ajaxparams="username:#Text1;sex:#Select1;birthdate:#Text2;email:#Text3"

                     type="button" value="注册" />

描述信息分两部分

第一部分是描述Ajax提交的配置信息ajaxupdater属性:

属性成员分别明:url提交的路径,updater提交后更新的区域,validator对某个区域下的元素进行验证处理。

第二部分就是描述提交的数据信息ajaxparams属性:

参数定义的是成[员名称:成员值],如果成员值用#开头描述即表示获取相关元素值。成员与成员之前通过[;]分隔开。

整个过程实现除了引入相关脚本文件外,并不需要编写任何脚本。不过实际应用也并不是这么简单,往往要根据完成的结果进行别的处理,这个时候就要引入一个提交完成的回调函数。

 

下载例程和插件源码

posted on 2007-03-06 14:36 henry 阅读(4214) 评论(10)  编辑 收藏 所属分类: JQuery

FeedBack:
2007-03-06 14:55 | 笑疯^_^      
我认为将简单的东西复杂化了
  回复  引用  查看    
#2楼 [楼主]
2007-03-06 15:06 | henry      
@笑疯^_^
为什么呢?那些方面你觉得比交麻烦?

  回复  引用  查看    
2007-03-06 17:45 | JesseZhao      
我也想知道
  回复  引用  查看    
2007-03-06 19:41 | Leepy      
挺不错的!
  回复  引用  查看    
2007-04-05 16:59 | ajax [未注册用户]
当遇到耗时较长的更新时,怎么提示用户正在更新呢???
  回复  引用    
#6楼 [楼主]
2007-04-05 19:31 | henry      
@ajax
JQuery提供关于ajax几个阶段的事件,可以分别设置相关function来处理。
  回复  引用  查看    
2007-04-06 00:19 | ajax [未注册用户]
谢谢,呵呵,看了jQuery文档
  回复  引用    
2007-04-06 14:18 | ajax [未注册用户]
单独使用jquery,知道怎么提示用户正在更新,但是使用你提供的ajaxupdater,就不知道怎么做了,-_-!。能提示下么??
  回复  引用    
#9楼 [楼主]
2007-04-06 15:58 | henry      
@ajax
我的插件是直接使用Jquery的post的,下载那里有源码你看一下。
关于更新提示我也没有在这插件里用过
  回复  引用  查看    
2008-07-15 03:17 | ttniao [未注册用户]

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
 


<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

寻求伯乐,限广州地区有意联系


与我联系

搜索

 

常用链接

留言簿(20)

我参加的小组

我的标签

随笔分类

最新评论

  • 1. re: JQuery实现自定义对话框
  • 你好 我是出版社的编辑,我看到你博客中的内容,感觉写的非常好,如果想把这些内容和更多的人分享,可以和我联系,把这些东西写成书。 我的邮箱:books_522008@yahoo.com.cn ...
  • --庞永庆
  • 2. re: 如何设计业务逻辑?
  • 我赞成定义,这需要丰富的应用经验。 --引用-------------------------------------------------- Ivony...: --引用------------...
  • --Kai.Ma
  • 3. re: 如何设计业务逻辑?
  • 针对LZ提出的,我们如何知道做出来的东西能满足以后的需要呢? 我自己的感觉,在满足自己目前的前提下,留一些适当的余地。 当有新的需求提出,重新检查下有无类似的代码? 如果有,而且发现重写一个新的方...
  • --思考-总结
  • 4. re: 如何设计业务逻辑?
  • 学习了

    第一种,要调整参数,感觉改起来麻烦
    第二种,感觉好很多
  • --未公布
  • 5. re: 如何设计业务逻辑?
  • 看文章,看评论,颇多收获!
  • --水言木

60天内阅读排行