原理:

  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. Android预定义样式

    字体大小 对于能够显示文字的控件(如TextView EditText RadioButton Button CheckBox Chronometer等等),你有时需要控制字体的大小.Android平 ...

  2. Jenkins系列——使用checkstyle进行代码规范检查

    1.目标 通过jenkins使用checkstyle对代码进行规范检查并生成html报告. 构建采用shell. 2.环境 checkstyle5.7(如果是Linux版本选用tar.gz格式) ap ...

  3. HDU - 1789 贪心

    贪心策略:按照分数降序排列,如果分数相同将截止时间早的排在前面.每次让作业尽量晚完成,因此需要逆序枚举判断这一天是否已经做了其他作业,如果没时间做这个作业说明不能完成,否则将这一天标记. AC代码 # ...

  4. session 与 coolie 的区别与联系

    cookie 和session 的区别: session 在服务器端,cookie 在客户端(浏览器) cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当 ...

  5. Eclipse远程调试hadoop源码

    1. 修改对应调试端口 之前的一篇blog里讲述了hadoop单机版调试的方法,那种调试只限于单机运行hadoop命令而已,对于运行整个hadoop环境而言是不可取的,因为hadoop会开启多个jav ...

  6. 第5章 PCIe总线的事务层

    事务层是PCIe总线层次结构的最高层,该层次将接收PCIe设备核心层的数据请求,并将其转换为PCIe总线事务,PCIe总线使用的这些总线事务在TLP头中定义.PCIe总线继承了PCI/PCI-X总线的 ...

  7. 关于编译FFMPEG的初级教程

    首先我们要下载相关工具,这里不多说,大家按照我的地址去下载文件就好了 MINGW下载地址:http://prdownloads.sourceforge.net/mingw/MinGW-3.1.0-1. ...

  8. mysql常用基础操作语法(一)~~对库的操作【命令行模式】

    1.创建数据库:create Database databaseName;例如需要创建mysqlTest数据库,create Database mysqlTest; 由此还可以看出,这里的名称是不分大 ...

  9. 标准的SQL语句类型

    标准的SQL语句类型 1.查询语句:主要是由select关键字完成 2.事务控制语句:主要由commit.rollback和savepoint三个关键字完成 3.DML(数据操作语言)语句:主要由in ...

  10. freemarker写select组件报错总结(四)

    1.错误描述 <html> <head> <meta http-equiv="content-type" content="text/htm ...