jquery实现ajax提交表单
一般情况下,我们提交form表单采用的是submit的方法,典型的场景如下。
<form id="thisForm" method="post" action="thisAction">
<input type="text" name="text1" />
<input type="text" name="text2" />
<select name="select1">
<option value="xx">xxxx</option>
<option value="xx">xxxx</option>
</select> <input type="submit" id="thisSubmit" value="提交" />
</form>
用这种方法提交需要将整个页面刷新,转发到另一个页面。但是有时候我们只希望局部刷新,所以要用到ajax提交表单。这边介绍两种方法。
1.第一种方法比较简单,如下。
首先,要把提交按钮从submit改为button,其次引入jquery的包,然后就是最关键的了,填写如下代码。
<form id="thisForm" method="post" action="">
<input type="text" name="text1" />
<input type="text" name="text2" />
<select name="select1">
<option value="xx">xxxx</option>
<option value="xx">xxxx</option>
</select> <button type="button" id="thisSubmit">提交</button>
</form>
$('#thisbuttion').click(function() {
$.ajax({
type : 'post',
url : 'thisAction',
data : $('#thisForm').serialize(),
dataType : 'html',
success : function(data) {
if (data > 0) {
alert("成功");
} else {
alert("失败")
}
}
});
});
这样就可以实现简单的ajax提交。
2.第二种方法是模拟form表单提交,需要用到一个jquery.form.js的插件,需要注意的是,这个插件比较古老了,新版的jquery可能会不兼容,所以还需要引入一个juery的降级包,jquery-migrate-1.2.1.min.js。
<!-- ajax form -->
<script type="text/javascript" src="./static/js/jquery.form.js"></script>
<script type="text/javascript" src="./static/js/jquery-migrate-1.2.1.min.js"></script>
然后就可以这样来写jquery代码实现提交了。
$(function() {
$("#thisButton").click(function() {
var ajax_option = {
url : "thisAction",
type : "post",
dataType : "html",
success : function(data) {
if (data == 1) {
alert("成功");
} else {
alert("失败")
}
goback();
}
}
$("#thisForm").ajaxSubmit(ajax_option);
});
});
两种方法的效果是一样的,不过如果提交表单的时候还有附件,则选用第二种方法。
3.如果提交表单的时候有附件,又不想选用第二种方法,还有第三种方法。
首先,需要在form表单加上 enctype='multipart/form-data'标识。
<form id="thisForm" enctype="multipart/form-data">
<input id="file" type="file" name="file"/>
<button id="thisButton" type="button">upload</button>
</form>
然后就可以用如下的代码来进行上传了。
$('#thisbuttion').click(function() {
$.ajax({
type : 'post',
url : 'thisAction',
cache: false,
data: new FormData($('#thisForm')[0]),
processData: false,
contentType: false,
dataType : 'html',
success : function(data) {
if (data > 0) {
alert("成功");
} else {
alert("失败")
}
}
});
});
ps:我们在form表单中最好不要用button来作为触发的按钮,而应该选用div,因为用button作为触发的按钮的时候,即便在代码中return false了,它还是会自动提交表单的。比如:
$("#button1").click(function(){
return false;
})
在return false之后,它还是会提交表单,默认跳转道本来的页面,并且带上了参数。这对我们来说是一个不好的体验,所以我们建议用div来代替button.
jquery实现ajax提交表单的更多相关文章
- php使用jquery Form ajax 提交表单,并上传文件
在html5中我们通过FormData就可以ajax上传文件数据,不过因为兼容问题.我们选用jquery.form.min.js来进行ajax的表单提交. 一.jquery.form.js下载地址 ...
- jquery实现ajax提交表单信息
最近在思考优化项目,想自己扩展一个jquery自动获取表单中的数据进行ajax提交.本人没有完整性学习jquery,基本上是现学现找,有点困难. 主要是扩展和拼接json转对象 很简单,附上代码: ; ...
- 利用jquery进行ajax提交表单和附带的数据
1.获取表单数据: $form.serialize() 2.附带数据:input[status]=1 3.构造url链接:url = $form.attr('action') + '?input[st ...
- jquery 通过ajax 提交表单
1.需要引入以下两个js文件 <script src="Easyui/jquery-1.7.2.min.js"></script> <scrip ...
- jquery实现ajax提交表单的方法总结
方法一: 分别获取所需数据元素,DOM结构外层不用包form标签(适用于数据量少,数据元素分散于整个页面) $.ajax({ type: 'POST', url:'', data: { residen ...
- jQuery序列化Ajax提交表单
var formData=$("form").serialize(); $.ajax({ type: "POST", url: "/front/EPt ...
- jquery实现ajax提交表单数据或json数据
- Jquery ajax提交表单几种方法
在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$('#表单ID').serialize();就行了,下面我来介绍两个提交表单数据的方法. ...
- Jquery ajax提交表单几种方法详解
[导读] 在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的 ...
随机推荐
- js函数整合队列顺序执行插件
前言 在日常开发中,也许我们会遇到这样的一个问题.我们利用[发布订阅模式](如果不了解的可以直接访问此链接www.cnblogs.com/xiaoxiaokun- )去执行[发布]事件时,遇到函数内部 ...
- netty 入门(一)
netty Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序.更确切的讲是一个组件,没有那么复杂. 例子 一 Discard服务器端 我们 ...
- 照虎画猫写自己的Spring——依赖注入
前言 上篇<照虎画猫写自己的Spring>从无到有讲述并实现了下面几点 声明配置文件,用于声明需要加载使用的类 加载配置文件,读取配置文件 解析配置文件,需要将配置文件中声明的标签转换为F ...
- MVC 路由特性实用记录 RouteArea RoutePrefix Route
实现目标:在不使用Area的情况下,自定义访问路径如: /pms/sysmenu/index 的形式 使用路由特性前得先检查路由配置文件 RouteConfig 是否启用了Attribute路由功能. ...
- mybatis 一对一关联映射实例
在实际项目开发中,经常存在一对一的关系,如一个人对应一张身份证信息,这就是一对一的关系.下面是一个简单的实例: 1.建表过程我就省略了,主要是一张Person表,一张IDCard表,其相关属性见步骤2 ...
- F - Capture
F - Capture 题链 题意 给你两种颜色的物品,有n组,每组有第一种颜色有w个,第二种为d个,每组必须选一种,求最后第一种颜色占的比值不低于K的最少需要选第一种的组数. 思路 首先没组都选第一 ...
- DIV+CSS特殊符号的处理方法
: :; ;< <= => >? ?@ @^ ^_ _` `{ {| |} }~ ~--- ...
- Javascript-数值运算 保留小数点位数,并对最后一位小数各种取整方法
今天遇到Javascript数值运算的坑,说到底,还是用得少啊.得多用多敲代码多遇坑. 先介绍以下三个Javascript number取整运算方法. Math.floor() 对一个数退一取整 例: ...
- codeforces 897A Scarborough Fair 暴力签到
codeforces 897A Scarborough Fair 题目链接: http://codeforces.com/problemset/problem/897/A 思路: 暴力大法好 代码: ...
- poj 3070 && nyoj 148 矩阵快速幂
poj 3070 && nyoj 148 矩阵快速幂 题目链接 poj: http://poj.org/problem?id=3070 nyoj: http://acm.nyist.n ...