form表单提交

一,无刷新页面提交jquery

 1.form表单在提交后会自动跳转页面,为了不跳转,实现无刷新页面提交,能够经过一个隐藏的iframe实现,把form表单的target设置为iframe的name名称,
form提交目标位当前页面iframe则不会刷新页面ajax

*注:使用form表单进行上传文件须要为form添加enctype="multipart/form-data" 属性,除此以外还须要将表单的提交方法改为post,
以下 method="post", input type的类型须要设置为file服务器

  enctype 属性规定在将表单数据发送到服务器以前如何对其进行编码,在使用文件上传控件时,必须加入该属性。框架

<form action="/admin/updateAdvertDetail" method="post" target="display_none" enctype="multipart/form-data"onsubmit="return check()">
<input type="file" name="name"/>
<input type="text" name="name"/ class="txt">
<input type="submit" value="提交"/>
</form>  
<iframe name="display_none" style="display:none"></iframe>

*注在我使用form表单提交跳转空iframe框架的时候,出现了文件传输失败的状况,并且这种传输失败的状况很偶然(注:文件上传大小没有限制),下图是,传输失败时的截图,图片显示有时是大文件没法上传,有时候小文件没法上传,我一度觉得是前台js代码问题,找了一圈下来也没找到问题,为了解决这个,使用ajaxSubmit()上传,但多是由于我项目中引用的js文件与它冲突,一直显示提交失败,只能先放弃这个方法。函数

最后发现原来是由于后台没有对文件传输后进行操做,最后进行重定向返回当前页面,才把问题解决。post

 

二,实现form的ajax提交(表单提交ajaxForm和ajaxSubmit的用法和区别编码

  1.首先要下载jquery.form.js,这个网上有,你们自行下载url

  2.这个插件的主要用途就是支持ajax表单提交和ajax文件上传。spa

  3.两个主要的API:ajaxForm() ajaxSubmit()。插件

  4.ajaxForm和ajaxSubmit均可以接收0或1个参数,该参数能够是一个变量、一个对象或回调函数,这个对象主要有如下参数:

  var object= {
                     url:url,      //form提交数据的地址
        type:type,     //form提交的方式(method:post/get)
        target:target,  //服务器返回的响应数据显示的元素(Id)号
                      beforeSerialize:function(){} //序列化提交数据以前的回调函数
        beforeSubmit:function(){},  //提交前执行的回调函数
        success:function(){},       //提交成功后执行的回调函数
                      error:function(){},             //提交失败执行的函数
        dataType:null,       //服务器返回数据类型
        clearForm:true,       //提交成功后是否清空表单中的字段值
        restForm:true,        //提交成功后是否重置表单中的字段值,即恢复到页面加载时的状态
        timeout:6000         //设置请求时间,超过该时间后,自动退出请求,单位(毫秒)。  

  };

  $(function(){
       $("form").ajaxForm(object);
     })
相关文章
相关标签/搜索