下以处理的是对含有 <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;
}
相关推荐
在压缩包中,源代码位于`src/jquery.form.js`,而压缩包的`dist`目录下提供了压缩后的`jquery.form.js.min.js`,便于在生产环境中使用,减少加载时间。 二、核心功能 1. 异步提交:jQuery Form支持AJAX方式提交...
本文将详细探讨`jquery.form.js`的使用方法、主要功能及其在实际项目中的应用。 一、`jquery.form.js`简介 `jquery.form.js`是由Malsup开发的一款jQuery插件,它的主要目标是提供一种优雅的方式来处理表单的异步...
jquery.form.min.js是一个异步提交表单的插件,使用该插件可以设置callback函数,并且页面不会跳转
在开始之前,请确保已经在项目中引入了jQuery库以及jQuery.form插件。通常,这两个文件可以通过CDN或者本地文件系统导入。例如: ```html <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> ...
在实际应用中,开发者应仔细阅读这份文档,理解每个选项和方法的含义,以便更好地利用jQuery Form Plugin。 总结来说,jQuery Form Plugin是jQuery库的一个强大补充,它让表单处理变得简单而高效。无论是异步提交、...
在Web开发中,文件上传是一项常见的功能,而jQuery作为JavaScript的一个强大库,提供了丰富的插件来简化这一过程。其中,`jquery.form.js`是一款专为文件上传设计的jQuery插件,它不仅支持单文件上传,还能处理多...
### JQuery Form 插件中的 `ajaxForm()` 和 `ajaxSubmit()` 方法详解 #### 一、引言 在 Web 开发中,使用 AJAX 进行异步表单提交是一种常见的技术手段,它允许开发者无需重新加载整个页面即可提交数据并接收响应...
标题提到的"jquery.js"指的是jQuery的核心库,而"jquery.form.js"则是一个用于扩展jQuery功能的插件,专门处理表单提交和Ajax交互。 **jQuery.js 知识点** 1. **选择器**: jQuery提供了丰富的CSS选择器,使得...
在本主题中,我们重点关注的是jQuery的`ajaxSubmit`功能,它是通过`jquery.form.js`插件实现的,这个插件扩展了jQuery的核心功能,允许开发者更加便捷地处理表单提交。`jquery-1.4.2.min.js`是jQuery库的一个较早...
最新版本的jQuery.form.js通常包含了一系列优化和改进,以提高性能和兼容性。 在**Struts 1.x**框架中,虽然它已经相对较老,但在许多现有的企业级应用中仍然被广泛使用。Struts是一个基于MVC(Model-View-...
本示例中提到的"jquery.MultiFile.js"和"jquery.form.js"是两个JavaScript库,它们共同协作,使得在Web应用中实现这一功能成为可能。下面将详细阐述这两个库的功能以及如何结合使用来实现无刷新多文件上传。 1. **...
jQuery Form Plugin能够让你简洁的将...插件里面主要的方法, ajaxForm和ajaxSubmit,能够从form组件里采集信息确定如何处理表单的提交过程。 两个方法都支持众多的可选参数,能够让你对表单里数据的提交做到完全的控制。
本文将深入探讨jQuery Form插件(即`jquery.form.js`)及其核心库`jquery.js`,并结合实际应用,阐述它们的功能与使用方法。 首先,`jquery.js`是jQuery的核心库,它的主要功能包括: 1. **DOM操作**:jQuery提供...
jquery.form.js是一款基于jQuery的扩展插件,用于以AJAX方式提交表单。在本篇文章中,我们将详细探讨该插件所提供的方法以及它们的用法和选项。 首先,我们需要了解插件的基本使用方法。通过调用`.ajaxForm()`方法...
jquery.form.js (异步提交,页面无刷新提交FORM), 1.需要引用jquery 2.引用JS后, $("form").ajaxSubmit(function (responseResult) { //responseResult 为从后台返回信息});