form 表單提交被攔截的問題處理方法


 

 

   異步ajax提交數據到服務器處理信息,處理成功后將返回的數據裝載到對應界面的表單隱藏域中,然后再使用  $(document.body).append($form);   $form.submit();  提交表單,此時遇到谷歌、IE等瀏覽器攔截表單提交后的URL新窗口,思考了很久,終於找到了解決辦法:

以下內容轉載自http://hezlh.blog.163.com/blog/static/1781091152013227101559654/

     一般情況下用  js  或  jquery  的  submit  方法提交  form  表單是不會被瀏覽器攔截的,但是發現異步的情況下用  js  提交  form  表單就會被瀏覽器攔截,這樣就對功能的實現帶來了很多的麻煩。網上看了好多都是同樣的問題,解決辦法都不是很理想,下面來詳細分析下這個問題。 
       既然是在  ajax  中使用表單提交,肯定是需要  ajax  返回結果以后確定一個最終狀態才能決定是否要提交表單。而ajax又是異步返回結果的,所以在返回結果后再決定提交表單,肯定會被瀏覽器攔截。
    那我們就想,jQuery   ajax   有沒有同步的使用方法呢?答案是有的,在調用  ajax  時添加   async: false   這個參數即可。試了后發現,咦,真的可以!
    這個方法雖然是同步的,但是不違反這么使用的目的,如果  ajax  沒有返回結果,當然也不能確定是否可以提交表單。在解決這個問題的時候,可能思路鎖定在了  ajax  只能做異步的事,所以沒有想到這樣的解決辦法。所以這個解決辦法是有效的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM