原理:

  submit 提交表单没有回调函数,但是可以用iframe来接收返回结果,最后进行格式转换就ok了;

原文地址: http://blog.csdn.net/simeng_1016/article/details/48008359

html: 部分代码

<form id="form_addcompress" action="/rest/upload" method="post" enctype="multipart/form-data" target="uploadframe">
<em class="color-red">* </em>版本:<input type="text" class="txt" name="version" placeholder="如V1.0.0"><br/> <em class="color-red">* </em>加缓存:<input type="radio" id="cache_no" name="cache" value="" checked=""><label for="cache_no">否</label>
<input type="radio" id="cache_yes" name="cache" value="" class="ml"><label for="cache_yes">是</label><br> <em class="color-red">* </em>文件:<input type="file" class="txt" name="uploadedFile" size="" /><br> 版本描述:<textarea class="tarea" name="desc" style="height:60px"></textarea><br>
<input type="button" class="btn" value="上传文件" id="upload_compressFile"/>
</form>
<iframe id="uploadframe" name="uploadframe" style="display:none"></iframe></div>

js: 部分代码

var time_index=;
$('#upload_compressFile').on('click',function(event){
var $c_version=$('#form_addcompress input[name="version"]'),
$c_uploadedFile=$('#form_addcompress input[name="uploadedFile"]');
var c_version=$c_version.val(),
c_uploadedFile=$c_uploadedFile.val();
if(c_version==""){
$c_version.css('borderColor','red');
}else{
$c_version.css('borderColor','#e1e1e1');
}
if(c_uploadedFile==""){
$c_uploadedFile.css('borderColor','red');
}else{
$c_uploadedFile.css('borderColor','#e1e1e1');
}
if(c_version==""||c_uploadedFile==""){
return false;
}
$('#form_addcompress').submit();
time_index=;
var timeSet=setInterval(function(){
time_index++;
var iframeObj = $(window.frames["uploadframe"].document);
var val=iframeObj.find("body").html();
if(val!=""&&time_index<){
var _result=eval("(" + val + ")");
if(typeof _result.code!="undefined"&&_result.code==""){
clearInterval(timeSet);
return false;
}else{
$.modaldialog.smallTip("上传失败", {
x: event.pageX,
y: event.pageY
});
clearInterval(timeSet);
}
}else{
clearInterval(timeSet);
}
},);
});

注意关键点:

  1. form表单中的target=”uploadframe“与iframe中的id=”uploadframe“要一致;原因:target 指 form表单提交后返回结果要放的位置;
  2. $(window.frames[“uploadframe”].document).find(“body”).html()结果是form提交后的返回值,用循环来取值;
  3. _result 就是 返回后的json对象,可以直接获取想要的数据

form + iframe 获取表单提交后返回的数据的更多相关文章

  1. phpcms v9自定义表单提交后返回上一页实现方法

    PHPcms v9中提交自定义表单后默认都是回到首页的,是不是感觉很不爽! 接下来,就说下phpcms v9自定义表单提交后返回上一页实现方法. 1.找到这个文件 phpcms\modules\for ...

  2. 处理form表单提交后返回值的处理办法【html5】

    同事朋友ajax,最近在弄公司业务电话机,自主搭建,买的设备. 其中最主要功能是前端发起呼叫,通过浏览器触发设备进行呼叫功能,走后台呼叫还不行. 需求是这样的: 前端给设备ip发送特定的一段xml信息 ...

  3. flask用宏渲染表单模板时,表单提交后,如果form.validate_on_submit()返回的是false的可能原因

    flask用宏渲染表单模板时,表单提交后,提交的内容符合DataRequired()校验, 但是form.validate_on_submit()返回的是False, 原因可能是表单模板中的<f ...

  4. 怎么实现form表单提交后不重新刷新当前页面

    怎么实现表单提交后不重新刷新当前页面     如何实现表单提交后不重新刷新当前页面 <form name='form1' id='form1' action='/xbcw/cw/xx_xx.ac ...

  5. 通过jquery实现form表单提交后不跳转页面,保留当前页面

    jquery代码: <script type="text/javascript" src="../js/jquery-1.8.3.min.js">& ...

  6. struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input

    原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1     function dosearch() {2         if ($(&q ...

  7. 在Action中获取表单提交数据

    -----------------siwuxie095 在 Action 中获取表单提交数据 1.之前的 Web 阶段是提交表单到 Servlet,在其中使用 Request 对象 的方法获取数据 2 ...

  8. AngularJS 表单提交后显示验证信息与失焦后显示验证信息

    虽然说AngularJS的实时表单验证非常有用,非常高效方便,但是当用户还没有完成输入时便弹出一个错误提示,这种体验是非常糟糕的. 正常的表单验证逻辑应该是在用户提交表单后或完成当前字段中的输入后,再 ...

  9. PHP关于表单提交 后 post get分页

    PHP关于表单提交后分页函数的那点事--POST表单分页实现   phpfunctionclass加密inputjavascript     说到分页,其实你在Google一搜一大把.大部是通过GET ...

随机推荐

  1. 老男孩Python全栈开发(92天全)视频教程 自学笔记08

    day8课程内容: 文件操作 f=open('小重山','r',encoding='utf8')   #以读的方式打开文件 data=f.read() print(data) f.close()  # ...

  2. hihoCoder 1015 KMP算法

    题意:经典字符串匹配算法.给定原串和模式串,求模式串在原串中出现的次数.算法讲解 AC代码 #include <cstdio> #include <cmath> #includ ...

  3. CodeForces-731B

    如果当天有m支队伍,昨天选择了k个B方案,那么今天还需要买m-k个披萨,如果m-k是奇数,那就先买一种B,剩下的全部买A,如果是偶数,全部买A.如果中途出现只有0支队伍,然而昨天却买了一次B,那么直接 ...

  4. Java 多线程入门

    进程与线程 在学习Java多线程之前,先简单复习一下进程与线程的知识. 进程:进程是系统进行资源分配和调度的基本单位,可以将进程理解为一个正在执行的程序,比如一款游戏. 线程:线程是程序执行的最小单位 ...

  5. iOS.Animations.by.Tutorials.v2.0汉化(三)

    第2章:Springs 在前一章中,您学习了如何创建UIKit的基本动画,包括如何提供起始值和结束值随着时间的UIKit,自动为你创建一个动画. 到目前为止,你的动画一直是单方向的流体运动.当你激活一 ...

  6. 极限学习机︱R语言快速深度学习进行回归预测

    本文转载于张聪的博客,链接:https://ask.hellobi.com/blog/zason/4543. 深度学习在过去几年,由于卷积神经网络的特征提取能力让这个算法又火了一下,其实在很多年以前早 ...

  7. stl string 容器的使用

    string 是基本的字符串序列容器,对应数据结构中的串,和vector<char>也类似,但功能更多 string 容器的使用 1,string 的构造函数是. string() 2,s ...

  8. java重写和重载

    方法的重载: 在一个类中的两个或两个以上的方法,他们方法名相同但是参数列表不同,这种方式称为方法的重载,方法的重载是实现多态性的方式之一. 参数列表不同指的是参数的个数不同或相同的个数但顺序不同或者类 ...

  9. “var arr = []; ”和 “var arr = {};” 的区别

    1.面试题    var arr = [];    var arr = {};    比较上述代码有什么区别? 2.解析    var arr = [];是一个数组对象    var arr = {} ...

  10. Linux显示进程状态

    Linux显示进程状态 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ top top - 19:16:36 up 45 min, 2 users, load ...