`
forever3059
  • 浏览: 15006 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类

jquery.form.js插件中ajaxSubmit提交在jquery1.4版本中的应用

阅读更多
下以处理的是对含有 <input type"file"  /> 元素的表单,利用jquery.form 的ajaxSubmit方法进行类似ajax提交的应用情况:

注:发果用jquery1.3.2版本与jquery.form.js使用的话,没什么问题照官方文档说明就OK的;但如果用jquery1.4.x的话,就存在诸多奇怪的问题,解决的很久才取出以下解决方案!

兼容firefox,chrome,IE7/8的最终代码:

客户端:

引用文件:

<script src="js/jquery/jquery-1.4.4.js" type="text/javascript"></script>

<script type="text/javascript" src="js/jquery_plugins/form/jquery.form.js"></script>

js代码:

<script type="text/javascript">

//-------------------form---------------------------------

//表單的異步提交

function submitForm(f){

var options = {

//iframe:true,

dataType:'xml', // 或'script',不能用'json',这种方式在三种浏览器中都不行,即回调函数不执行

   type:'post',

   //url: 'bid/bidding/biddingAction_saveBaseInfo.action',

   url: f.action,

   beforeSubmit:  showRequest,  // pre-submit callback

       success:       showResponse,  // post-submit callback

       //clearForm:true

       // other available options:

       target:        '#baseInfo_iframe'   // target element(s) to be updated with server response

       //resetForm: true        // reset the form after successful submit

       // $.ajax options can be used here too, for example:

       //timeout:   3000

     };

//$('#'+formId).ajaxForm(options);

$(f).ajaxSubmit(options);

}

// pre-submit callback

function showRequest(formData, jqForm, options) {

if($("#baseInfoForm").validationEngine({returnIsValid:true})){

  return true;

}else{

return false;

}

}

// post-submit callback

function showResponse(response, statusText)  {

/* $(response).find("msg").each(function(){

         alert($(this).text());

      });*/

var strMsg=$(response).find("msg").first().text();

showMsg("ui-icon-circle-check",strMsg);

//alert("xxSS");

}

//-------------------end form---------------------------------

//显示提示信息

function showMsg(iconClass,msg,w,h){

$( "#dialog-modal" ).html("<p><span class=\"ui-icon "+iconClass+"\" style=\"float:left; margin:0 7px 50px 0;\"></span>"+msg+" </p><br />");

    $( "#dialog-modal" ).dialog({

position: 'top',

width: w?w:200,

height: h?h:150,

modal: true

});

}

</script>

html表单:

<iframe id="baseInfo_iframe" name="baseInfo_iframe" style="display: none;" frameborder="0" src=""></iframe>

<form enctype="multipart/form-data" method="post" target="baseInfo_iframe"

  action="bid/bidding/biddingAction_saveBaseInfo.action"

  id="baseInfoForm" class="formular" onsubmit="javascript:submitForm(this);return false;">

.......

<input type="file" name="upload" id="upload" class="multi" maxlength="1" accept="" size="20"/>

.......

</form>

注:为了在IE下能能成功地执行 success 定义的回调函数,以下一点很重要:定义form的 target="baseInfo_iframe" 和一个隐藏的iframe。没有这个的话,在IE下不会调用回调函数的!

Server端:

struts2 action代码:

public String  xxx() throws Exception{

...

getResponse().setCharacterEncoding("UTF-8");

/*回应报头的类型很重要,试验结果是:

  * 客户端设xml时,server回应报头应该是 application/xml  (如果是text/html,chrome和FF可以,IE不行);

  * 客户端设script时,server回应报头应该是 text/html ;

  */

getResponse().setHeader("Content-Type", "text/html");

//String str="{msg:'"+getText("opt.suc")+"'}";    //客户端声明为json

String str="<msg>"+getText("opt.suc")+"</msg>"; //客户端声明为xml

//String str="showMsg(\"ui-icon-circle-check\",\""+getText("opt.suc")+"\");"; //客户端声明为script

System.out.println("<<:"+str);

getResponse().getWriter().print(str);

return null;

}



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xyzroundo/archive/2011/01/18/6149838.aspx
分享到:
评论
1 楼 曾老师 2012-09-18  
action 为什么要 return null?

相关推荐

    jquery.form.min.js

    jquery.form.min.js是一个异步提交表单的插件,使用该插件可以设置callback函数,并且页面不会跳转

    jquery ajaxSubmit提交所用到的jquery.form.js

    jquery ajaxSubmit提交所用到的jquery.form.js 和jquery-1.4.2.min.js

    jquery.form.js

    jquery.form.js 利用ajaxSubmit无刷新异步上传导入Excel,无刷新提交表单 参考地址:http://blog.csdn.net/gorch/article/details/52493478

    jquery文件上传js:jquery.form.js

    jquery上传文件和参数封装的js:jquery.form.js,可用于单文件、上文件上传以及携带参数

    jQuery表单插件jquery.form.js(示例源码)

    jQuery Form Plugin能够让你简洁的将...插件里面主要的方法, ajaxForm和ajaxSubmit,能够从form组件里采集信息确定如何处理表单的提交过程。 两个方法都支持众多的可选参数,能够让你对表单里数据的提交做到完全的控制。

    jquery.form.js (异步提交,页面无刷新提交FORM)

    jquery.form.js (异步提交,页面无刷新提交FORM), 1.需要引用jquery 2.引用JS后, $("form").ajaxSubmit(function (responseResult) { //responseResult 为从后台返回信息});

    JQuery.form表单提交参数详解.txt

    ajaxForm()和ajaxSubmit()方法可以接受0个或1个参数,当为单个参数时,该参数可以是一个回调函数,也可以是一个options对象。以下是一个options对象. var options={ target:'#output1', //把服务器返回内容放入id为...

    Ajax表单提交 js文件( jquery.form.js)封装好的

    Ajax表单提交,用 jquery.form.js SDK 封装好的ajaxSubmit

    【springmvc+jquery.form.min.js+spring文件上传】

    使用ajaxSubmit文件上传。

    jquery-form.js

    针对bug问题: form.ajaxSubmit is not a function,需要引入包jquery-form.js,下载后解压,引入即可。

    基于jQuery通过jQuery.form.js插件使用ajax提交form表单

    在jQuery Form插件可以让你很容易的使用AJAX提交Form表单,主要方法ajaxForm和ajaxSubmit负责收集表单元素的信息,管理提交进程。这两种方法都是可配置的,让你完全控制Form提交,本篇文章介绍基于jQuery通过jQuery....

    Jquery.form.js【支持from提交的Ajax】

    1.一个jquery的子库 2.经常用里面的ajaxSubmit 以ajax方式提交整个form完成交互 传统的Ajax参数多时写起来特别麻烦,有了这个类,就不用写参数了,效果跟直接点form提交的效果一样 3.对交互性要求高,数据传递大的...

    jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)

    一、jQuery.Form.js 插件的作用是实现Ajax提交表单。 方法: 1.formSerilize() 用于序列化表单中的数据,并将其自动整理成适合AJAX异步请求的URL地址格式。 2.clearForm() 清除表单中所有输入值的内容。 3....

    使用jQuery.form.js/springmvc框架实现文件上传功能

    例如:jquery的ajax方法与jquery.form.js中的ajaxSubmit方法的参数,具体细节将在下一篇博客中分享。 重点: html表格三要素: action=”fileUpload/fileUpload” method=”post” enctype=”multipart/form-data”...

    jQuery使用ajaxSubmit()提交表单示例

    ajaxSubmit(obj)方法是jQuery的一个插件jquery.form.js里面的方法,所以使用此方法需要先引入这个插件。如下所示: 代码如下:[removed][removed][removed][removed] 那么,如何通过ajaxSubmit(obj)提交数据呢?首先...

    最新jquery.form.js文件

    最新的从jquery官网下载的,在家访问官网速度超慢,公司用的国外网,下载了个,供各位使用。

    浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用

    下面小编就为大家带来一篇浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    jquery.form

    jQuery From有两个主要方法:ajaxForm和ajaxSubmit,它们集合了从控制表单元素到决定如何管理提交进程的功能,这两个方法支持许多充分控制数据提交的参数选项(options)。用Ajax来提交表单,你不可能找到比这个更...

Global site tag (gtag.js) - Google Analytics