posts - 185,  comments - 1071,  trackbacks - 43

       其实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 阅读(4459) 评论(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[未注册用户]



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 665494




相关文章:

相关链接:
<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

与我联系

搜索

 

常用链接

留言簿

我参加的小组

我的标签

随笔分类

最新评论

60天内阅读排行