作者:xyzroundo

下以处理的是对含有 <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" οnsubmit="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;

}


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

  1. JQuery.form.js插件的简单使用

    其实就是用ajax提交表单,但是不想让他跳转页面所以选用ajax提交表单.我也不知道为什么,难道是因我里面的数据太多了?不应该啊...总之我的表单没有序列化的功能!对,就是这样.所以我就选用了人家的小 ...

  2. jquery.form.js的ajaxSubmit和ajaxForm使用(用于多文件上传以及其他参数的混合提交)

    jquery.form.js的ajaxSubmit和ajaxForm使用(用于多文件上传以及其他参数的混合提交) ajaxSubmit 和ajaxForm区别 ajaxForm ajaxForm()不 ...

  3. form提交--jquery.form.js

    jquery.form.js 官网  http://www.malsup.com/jquery/form/ 先写一个简单的form,提交后在后台打印参数. formsubmit.jsp <%@ ...

  4. 【jQuery】使用jquery.form.js,获取提交表单返回值

    jQuery表单库介绍 实现 html 中提交表单并实现不跳转页面处理返回值 jQuery表单库(jquery.form.js库)以jQuery为基础,用于处理表单AJAX提交,使得表单AJAX提交简 ...

  5. jQuery.Form.js 异步提交表单使用总结

    jQuery.Form.js 是一个用于使用jQuery异步提交表单的插件,它使用方法简单,支持同步和异步两种方式提交. 第一步:引入jQuery与jQuery.Form.js 1 <scrip ...

  6. jquery.form.js ajax提交上传文件

    项目中最近有用到表单提交,是带有图片上传的表单录入,需要ajax异步提交,网上找了好多例子都是只能提交上传字段一个信息的,这里整理一下.表单里有普通文本信息字段也有图片上传字段. 1.jsp代码--引 ...

  7. 使用jquery.form.js实现form表单无刷新提交简单示例

    2019独角兽企业重金招聘Python工程师标准>>> 直到今天,才发现JQuery原来有个Form表单插件,而且还是无刷新页面提交表单,看来自己还要多加强学习啊!不多说了,直接贴代 ...

  8. 使用jquery.form.js提交表单并获取后台返回值

    使用jquery.form.js提交表单并获取后台返回值,会把所有有name属性的值提交到后台 1.前台js代码 //使用jquery.form.js提交表单并获取后台返回值,会把所有有name属性的 ...

  9. jQuery.form.js使用

    jQuery.form.js是一个form插件,支持ajax表单提交和ajax文件上传. 下载地址 百度云:http://pan.baidu.com/s/1eQoYE46 360云:http://yu ...

最新文章

  1. 一口一个,超灵活的Python迷你项目
  2. 全球首个Magic Leap One体验:吓到你不敢进房间
  3. eclipse搭建多module项目的坑
  4. 清空邮件队列中的邮件
  5. 12-Factor与云原生
  6. 提交App中断出现 Cannot proceed with delivery an existing transporter instan
  7. 将SQL Server数据库备份到多个文件或从多个文件还原
  8. 如何做好云计算的运维工作
  9. 【笔试/面试】—— 数组中第二大的数
  10. 深度学习自学(三十二):半监督焦点人物检测
  11. Rust FFI 编程 - Rust 语言层面对 FFI 的支持
  12. 虚拟机usb服务器,VM虚拟机支持USB启动的方法
  13. 甘特图、IPO图、DFD图
  14. 132 个 Web 设计工具(上)
  15. 2022年全球及中国FIP-EMI垫片行业销售前景与运行规模研究报告
  16. 什么是5G?它能为我们带来什么样的便利?思维导图《5G时代》给你新认识
  17. springboot接入华为云短信
  18. 详细解解读贴片电容:NP0、C0G、X7R、X5R、Y5V、Z5U的区别
  19. yii2框架 电商系统在线直播开发
  20. foxmail导入outlook部分邮件

热门文章

  1. WCF的事务(5篇)
  2. Unicode的一些类型转换问题
  3. docker安装测试及问题解决
  4. java quot;1quot;==quot;1quot;_JAVA: 为什么要使用quot;抽象类quot;? 使用quot;抽象类quot;有什么好处?...
  5. pythonpil模块安装_centos 安装python PIL模块
  6. 如何保证进程间同步工作_冬季建房如何保证混凝土浇筑效果好,做好养护工作...
  7. vue在less中使用css3 calc 被解析 的问题
  8. 两个特征是独立好还是正相关好_2021考研数学概率典型例题,都给你总结好啦!...
  9. x64版本的OpenGL库配置
  10. mysql分页案例_MySQL优化案例系列-mysql分页优化