优秀的编程知识分享平台

网站首页 > 技术文章 正文

ajaxForm表单提交,触发回调函数(ajax的回调)

nanyue 2024-08-10 18:44:55 技术文章 6 ℃

最近有遇到一个问题:

就是当需要上传文件时,不跳转其他页面,需要在文件保存完成,触发事件

一开始使用<form>的target属性跳转到本页面中的<iframe>,这样虽然可以解决页面不跳转问题,但是还是无法解决触发文件保存完成后的触发事件

上网寻找了一些解决方法,发现ajaxForm表单提交可以很好的解决这个问题

首先你得去下载jquery.form.js

javaScript,对ajaxForm的一些初始化属性的设置

var options = {

target: ‘#output1’, //把服务器返回的内容放入id为output1的元素中

beforeSubmit: showRequest, //提交前的回调函数

success: showResponse, //提交后的回调函数

url: url, //默认是form的action,如果声明,则会覆盖

type: type, //默认是form的method,如果声明,则会覆盖

dataType: json , //接受服务端返回的类型

clearForm: true, //成功提交后,清除所有表单元素的值

resetForm: true, //成功提交后,重置所有表单元素的值

timeout: 3000 //限制请求的时间,当请求大于3秒后,跳出请求

};

//这个就是调用ajaxForm提交的方法

$(“#表单名”).ajaxSubmit(options);

//回调函数

function showResponse(responseText, statusText, xhr, $form){

}

对于页面上的<form>不需要添加其他什么属性,赋予id即可

附上测试用的html,比较直观一点

<!DOCTYPE html>

<html>

<head>

<title>Bootstrap 实例 - 模态框(Modal)插件事件</title>

<!-- <link href="css/bootstrap.min.css" rel="stylesheet"> -->

<script src="js/jquery.min.js"></script>

<script src="js/test.js"></script>

</head>

<body>

<form id="fileForm" >

<div ><input type="file" name="test"/></div>

</form>

<input type="button" value="提交" onclick="toSave()"/>

<script>

$(function(){

var options = {

type: 'POST',

url: '../upload',

async:false,

success:showResponse,

dataType: 'json',

error : function(xhr, status, err) {

console.log(xhr);

console.log(status);

console.log(err);

alert("操作失败");

}

};

$("#fileForm").submit(function(){

$(this).ajaxSubmit(options);

return false; //防止表单自动提交

});

});

/**

* 保存操作

*/

function toSave(){

$("#fileForm").submit();

console.log("aasda");

}

/**

* 保存后,执行回调

* @param responseText

* @param statusText

* @param xhr

* @param $form

*/

function showResponse(responseText, statusText, xhr, $form){

console.log("花里胡哨");

if(responseText.status == "0"){

/**

* 请求成功后的操作

*/

alert(responseText.msg);

} else {

alert(responseText.msg);

}

}

</script>

</body>

</html>

最近发表
标签列表