原理:

  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. Eventlog控件的使用

    CreateEventSource 已重载. 建立一个能够将事件信息写入到系统的特定日志中的应用程序. Delete 已重载. 移除日志资源. DeleteEventSource 已重载. 从事件日志 ...

  2. uva208

    一道简单的路径打印,首先需要一次dfs判断能否从1到达目标点,否则可能会超时.还有一点就是那个格式需要注意下,每条路径前没有空格(看起来好像有3个空格)-. AC代码: #include<cst ...

  3. Oracle 11g数据库安装和卸载教程

    Oracle11g的安装教程 同时解压缩两个zip文件,生成一个database文件夹,进入到database文件夹,点击setup 去掉安全更新的选项,直接下一步 选择创建和配置数据库,点击下一步 ...

  4. NLP+词法系列(二)︱中文分词技术简述、深度学习分词实践(CIPS2016、超多案例)

    摘录自:CIPS2016 中文信息处理报告<第一章 词法和句法分析研究进展.现状及趋势>P4 CIPS2016 中文信息处理报告下载链接:http://cips-upload.bj.bce ...

  5. C#:几种数据库的大数据批量插入

    在之前只知道SqlServer支持数据批量插入,殊不知道Oracle.SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解 ...

  6. 从不同的角度分析Flex的优缺点

    从不同的角度分析Flex的优缺点 技术角度: (1)具备了RIA时代富客户端的优点(C/S+B/S) (2)支持多种服务器语言(JAVA..NET.PHP)及主流框架(Spring.Hibernate ...

  7. boost asio allocation

    allocation演示了自定义异步操作的内存分配策略,因为asio在执行异步IO操作时会使用系统函数来动态分配内存,使用完后便立即释放掉:在IO操作密集的应用中,这种内存动态分配策略会较大地影响程序 ...

  8. java实现多线程三种方法

    1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法 3.实现callable接口,重写call方法

  9. sql语句中的left join,right join,inner join的区别

    left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) ...

  10. java暴力递归回溯算法

    今天这个问题是我之前一直想解决的,还记得以前第一次上蓝桥杯的课的时候,也就是大一高数期中模拟考试那天,下午去上蓝桥杯课,遇到这道题,当时写了写,根本没有思路,然后就给大一的模拟考试去了.印象深刻啊,一 ...