利用jquery.form.js实现将form提交转为ajax方式提交的方法(带上传的表单提交)
提供一种方法就是利用jquery.form.js。
(1)这个框架集合form提交、验证、上传的功能。
核心方法 -- ajaxForm() 和 ajaxSubmit()
$('#myForm').ajaxForm(function() {
alert("提交成功!欢迎下次再来!");
});
$('#myForm2').submit(function() {
$(this).ajaxSubmit(function() {
alert("提交成功!欢迎下次再来!");
});
return false; //阻止表单默认提交
});
ajaxForm() 和 ajaxSubmit() 都能接受0个或1个参数,当为单个参数时,该参数既可以是一个回调函数,也可以是一个options对象,上面的例子就是回调函数,
下面是options对象
代码如下:
第一步:引用js
<script type="text/javascript" src="js/jquery-1.7.min.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
第二步:页面写form
<input type="text" id="text1">
<input type="text" id="text2">
<input type="text" id="text3">
<form method="post" enctype="multipart/form-data" id="formSubmit">
<div class="wrapBox">
<div class="fileBox clearfix">
<span class="pull-left">上传文件:</span>
<input type="file" class="pull-left" id="loadFile" name="uploadFile">
</div>
</div>
<div class="wrapSubmitBox clearfix">
<input type="button" id="submitBtn" value="提交">
<input type="hidden" id="ajaxParam" name="ajaxParam">
</div>
</form>
//上传文件的input 和提交按钮要写在form里面。<input type="hidden" id="ajaxParam" name="ajaxParam">是存储$(“#text1”),$(“#text2”),$(“#text3”)需要传给后台的数据。
//也可以写在form里面。不需要hidden.用最下面options里的data的方式传参。
第三步:写js调用jquery.form.js,对form表单进行ajax提交 :
$("#formSubmit").click(function(){
var valtext1=$("#text1").val();
var valtext2=$("#text2").val();
var valtext3=$("#text3").val();
uploadJsonData="{'text1':"+valtext1+",'text2':"+valtext2+",'valtext3':"+valtext3+"}";
$("#ajaxParam").val(uploadJsonData);
$("#formSubmit");
var options = {
url:'上传地址',
type:'post',
beforeSubmit: showRequest,
success:function(data){
if(data.success==1){
alert('上传成功')
}
},
error:function(){
}
};
$("#formSubmit");.ajaxSubmit(options);
});
(2)options对象内的值有哪些?
var options = {
target: '#output', //把服务器返回的内容放入id为output的元素中
data:{param1:"自己的额外的参数"}, //这个参数是指通过ajax来提交给服务器,提交除了form内部input的参数,在后台中使用String param1=req.getParameter("param1");获取。
beforeSubmit: showRequest, //提交前的回调函数
success: showResponse, //提交后的回调函数
url: url, //默认是form的action, 如果申明,则会覆盖action
type: type, //默认是默认是自己在form标签上指定的method(get or post),如果申明,则会覆盖,如果没有指定,则使用get。
dataType: null, //html(默认), xml, script, json...接受服务端返回的类型,这个参数值的是服务器返回的数据类型,默认的是null也就是服务器可以默认返回字符串,然后将这些字符串放在target内部,当然还有json、xml,其中最常用的便是null和json
clearForm: true, //成功提交后,清除所有表单元素的值
resetForm: true, //成功提交后,重置所有表单元素的值
timeout: 3000 //限制请求的时间,当请求大于3秒后,跳出请求
}
showRequest有三个参数formData, jqForm, options
function showRequest(formData, jqForm, options){
//formData: 数组对象,提交表单时,Form插件会以Ajax方式自动提交这些数据,格式如:[{name:user,value:val },{name:pwd,value:pwd}]
//jqForm: jQuery对象,封装了表单的元素
//options: options对象
var queryString = $.param(formData); //name=1&address=2
var formElement = jqForm[0]; //将jqForm转换为DOM对象
var address = formElement.address.value; //访问jqForm的DOM元素
return true; //只要不返回false,表单都会提交,在这里可以对表单元素进行验证
};
利用jquery.form.js实现将form提交转为ajax方式提交的方法(带上传的表单提交)的更多相关文章
- 如何用elementui去实现图片上传和表单提交,用axios的post方法
下面是在vue搭建的脚手架项目中的组件component文件夹下面的upload.vue文件中的内容 <!--这个组件主要用来研究upload这个elementui的上传插件组件--> & ...
- 基于Http原理实现Android的图片上传和表单提交
版权声明:本文由张坤 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/794875001483009140 来源:腾云阁 ...
- php 利用http上传协议(表单提交上传图片 )
主要就是利用php 的 fsocketopen 消息传输. 这里先通过upload.html 文件提交,利用chrome抓包,可以看到几个关键的信息. 首先指定了表单类型为multipart/form ...
- swift文件上传及表单提交
var carData:NSMutableDictionary = NSMutableDictionary(); var request:NSMutableURLRequest = NSMutable ...
- jquery.form.js实现将form提交转为ajax方式提交的使用方法
本文实例讲述了jquery.form.js实现将form提交转为ajax方式提交的方法.分享给大家供大家参考.具体分析如下: 这个框架集合form提交.验证.上传的功能. 这个框架必须和jquery完 ...
- jquery.form.js实现将form提交转为ajax方式提交的方法
本文实例讲述了jquery.form.js实现将form提交转为ajax方式提交的方法.分享给大家供大家参考.具体分析如下: 这个框架集合form提交.验证.上传的功能. 这个框架必须和jquery完 ...
- ajax方式提交带文件上传的表单,上传后不跳转
ajax方式提交带文件上传的表单 一般的表单都是通过ajax方式提交,所以碰到带文件上传的表单就比较麻烦.基本原理就是在页面增加一个隐藏iframe,然后通过ajax提交除文件之外的表单数据,在表单数 ...
- form表单提交转为ajax方式提交
<form action="xxx" method="get"> //action的值是请求的url地址 <div class="f ...
- struts2 文件的上传下载 表单的重复提交 自定义拦截器
文件上传中表单的准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设 ...
随机推荐
- 201621123033 《Java程序设计》第2周学习总结
1. 本周学习总结 ·学习了String类的特点,以及其与字符数组的关系等等. ·常量池的相关概念. ·包装类的特点. 2. 书面作业 1. String-使用Eclipse关联jdk源代码 1.1 ...
- HDU 6165 FFF at Valentine(Tarjan缩点+拓扑排序)
FFF at Valentine Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- 洛谷 P2375 [NOI2014]动物园 解题报告
P2375 [NOI2014]动物园 题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定 ...
- webpack watch模式产生*.hot-update.json文件
webpack --watch会产生*.hot-update.json文件,解决方法如下: output: { path: path.join(root, "dist"), fil ...
- 做一个类似JQuery获取DOM对象的$()
在dom操作时,有时根据id获取单个对象.有时根据className获取多个对象.平常可能我们用两个函数来实现这两个功能.不过我将它们整合了一下,目前使用情况良好,函数如下: view source ...
- 类复制 MemberwiseClone与Clone(深 浅 Clone)
MemberwiseClone 方法创建一个浅表副本,具体来说就是创建一个新对象,然后将当前对象的非静态字段复制到该新对象.如果字段是值类型的,则对该字段执行逐位复制.如果字段是引用类型,则复制引用但 ...
- bzoj2441 [中山市选2011]小W的问题(debug中)
2441: [中山市选2011]小W的问题 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 487 Solved: 186[Submit][Statu ...
- iframe操作(跨域解决等)
note:当页面内嵌入一个iframe实际上是在dom上新建了一个新的完整的window对象 iframe中取得主窗体 window.top (顶级窗口的window对象) window.parent ...
- c# 动态调用webservice 转录一下
1. client call method [上线的话也只是需要改一下wsdl地址就可以了] /// <summary> /// 动态webservice调用 /// </sum ...
- Oracle 数据库维护相关
版本升级 在维护数据库升级的过程中,会产生n个脚本.谈谈我所处的项目背景,项目数据库最早版本假定为1,最后在多次维护后,版本号,可能变更为16.那么针对项目上不同的数据库版本,如何来进行升级呢? 我使 ...