Html Form 表單提交

簡單的form表單需要寫篇博文嗎?是的,踩過坑就要一一記錄下,以防下次再遇到不用再去試錯.可以節省大量時間。

一個form表單提交,只需要$(‘#form’).submit();不就可以完成了嗎?這樣單純的提交是沒任何問題的,但如果還需要關閉form、刷新父頁面這樣是行不通的。同時加了刷新父頁面和關閉本窗口,窗口是不會關閉的,所以只有用另一種方式

此方式除了需要引入jQuery.js,還需要JQuery-form.js

具體步驟:

1.引入文件

  <%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.7.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>js/jquery-form3.5.js"></script>

2.編寫JS腳本

var opinion =  encodeURI(encodeURI(desc));

$("form").ajaxSubmit({  
            type: 'get',  
            url: "<%=basePath%>****Action.do?operation=updateState&formBO.oid="+formID
            +"&formBO.formNo="+formNO+"&opinion="+opinion,
            dataType: "json",
           /*  data:{

                opinion:opinion
                此處傳數據,後臺接收不到值,還未找到原因,只能通過URL傳參
            }, */
            success: function(data){
                alert("保存成功");
                window.opener.queryList();//調用父窗口的查詢方法
                window.close();
            },
           error: function(data)
            {
                alert("保存成功");
            }
         });

3.<form enctype="multipart/form-data">//增加此屬性值

這樣數據就可以在後臺接收到。但有個問題就是URL傳中文是會有亂碼的。又是各種糾結,最後找到了解決方式

1在前端把需要傳中文的字符串編碼

opinion =  encodeURI(encodeURI(desc));//兩次編碼 (爲什麼兩次編碼,在擴展裏有)

2.後臺解碼

String opinion = java.net.URLDecoder.decode(deliveryBatchForm.getOpinion(),"utf-8");

就可以完成了

 

擴展

https://www.cnblogs.com/zhuxiaojie/p/4783939.html

https://blog.csdn.net/xinghuo0007/article/details/72806717

https://www.cnblogs.com/liuslayer/p/4968448.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章