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);
     })
相關文章
相關標籤/搜索