首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 核心技术 >> 网络编程 >> 正文

改善Form提交数据的UI 交互设计

 

 /* 表单提交 2.0 update 2008-06-14  */

    var ajaxSubmitFormData = {

     form:false,  //用来保存正在提交的表单

     debug:false,

     callback:false,

     dataType:"json",

     onSubmit:function(data){

       //正在提交数据提示

     },

     onResponse:function(response){

         //当数据返回时触

     },

     onResponse200:function(data){

         alert('恭喜你,数据提交成功');

         window.location.reload(false);

     },

     onResponse403:function(data){

          //输入验证码界面

         var formId=ajaxSubmitFormData.form;

         if (!$(formId).find(":input[name='verfiyCode']").length){

          $(formId).append('<input type="text" name="verfiyCode" size="4" /><img src="verifyCode.jsp">');

         }

     },

     onResponse500:function(data){

          var s="提交错误:\n";

          //alert(data.length);

          for(var i=0;i<data.length;i++){

            s=s+data[i].id+"|"+data[i].message+"\n";

          }

          alert(s);

     },

     onResponse302:function(data){

         if (data.length>0){

         window.location=data[0].message;

       }else{

            alert("未定义跳转地址");

       }

     }

    };

    $(document).ready(function(){

        $('form.ajaxForm').submit(function() {

           //alert($(this).attr("id"));

           var formId=$(this).attr("id");

           submitAjaxFormNow("#"+formId);

           return false; // <-- important!

        });

        $(".ajaxSubmitButton").click(function(){

             var formId=$(this).attr("formId");

             //alert($(this).attr("formId"));

             submitAjaxFormNow("#"+formId);

        });

    });

    function initSubmitAjax(formId,returnFunc){

      var options= {

      beforeSubmit:  function(formData, jqForm, options) {

        if (ajaxSubmitFormData.debug){

         var queryString = $.param(formData);

         alert('正在提交的数据:\n' + queryString);

        }

        if ($.isFunction(ajaxSubmitFormData.onSubmit)) {

                 ajaxSubmitFormData.onSubmit(formData);

         }

        return true;

      },

      success:function (responseText, statusText)  {

        try{

          if (ajaxSubmitFormData.debug){

            alert('status: ' + statusText + '\nresponseText:\n' + responseText);

           }

           if ($.isFunction(ajaxSubmitFormData.onResponse)) {

              ajaxSubmitFormData.onResponse(responseText);

           }

           ajaxSubmitFormData.form     =false;

           ajaxSubmitFormData.callback =false;

          //-------- TODO 改成触发事件方式

           responseText=responseText.replace(/\r\n/g,"");

           //trim space

          responseText=responseText.replace(/^\s*|\s*$/g, "");

 

            var response = eval(responseText)[0]; //转换成json格式

            if (response.code == "200" ){

                if ($.isFunction(returnFunc)) {

                    ajaxSubmitFormData.callback=returnFunc;

                    returnFunc(response.messages);

                }else{

                    if ($.isFunction(ajaxSubmitFormData.onResponse200)) {

                 ajaxSubmitFormData.onResponse200(response.messages);

              }

                }

            //$(formId).triggerHandler("ajax_response_200",response.messages);

          }

          if (response.code == "403" ){

            //保存当前

            ajaxSubmitFormData.form       = formId;

            ajaxSubmitFormData.callback   = returnFunc;

 

            if ($.isFunction(ajaxSubmitFormData.onResponse403)) {

                 ajaxSubmitFormData.onResponse403(response.messages);

            }

            //$(formId).triggerHandler("ajax_response_403",response.messages);

          }

          if (response.code == "302" ){

            if ($.isFunction(ajaxSubmitFormData.onResponse302)) {

                 ajaxSubmitFormData.onResponse302(response.messages);

            }

            //$(formId).triggerHandler("ajax_response_302",response.messages);

          }

          if (response.code == "500" ){

            if ($.isFunction(ajaxSubmitFormData.onResponse500)) {

                 ajaxSubmitFormData.onResponse500(response.messages);

            }

            //$(formId).triggerHandler("ajax_response_500",response.messages);

          }

        }catch(e){

            alert("服务器返回的数据格式无效:\n"+responseText+"\nError:"+e.message);

        }

      },

      clearForm:true,

      resetForm:true,

      timeout:60000,

      type:"POST"

     };

     $(formId).ajaxError(function(event, request, settings){

        alert("处理请求发生错误:\n"+settings.url+"\n请重新刷新页面或稍后再试");

          $.unblockUI();

     });

     return options;

    }

    function submitAjaxFormNow(formId,returnFunc){

     if ($(formId))

         $(formId).ajaxSubmit(initSubmitAjax(formId,returnFunc));

    }

    function submitAjaxForm(formId,returnFunc){

     if ($(formId))

         $(formId).ajaxSubmit(initSubmitAjax(formId,returnFunc));

    }

 

上一页  [1] [2] [3] 下一页

【责编:landy】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航