Html Form 表单提交

简单的form表单需要写篇博文吗?是的,在泥坑里爬过还是要一一记录下,以防下次再遇到不用再去试错.可以节省大量时间。

一个form表单提交,只需要$(‘#form’).submit();不就可以完成了吗?这样单纯的提交是没任何问题的,但如果还需要关闭form、刷新父页面这样是行不通的。同时加了刷新父页面和关闭本窗口,窗口是不会关闭的,所以只有用另一种方式

此方式除了需要引入jQuery.js,还需要JQuery-form.js,当然最好还是直接ajax提交

具体步骤:

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(formBO.getOpinion(),"utf-8");

就可以完成了

 

附:ajax提交

 $.ajax({ 
            type: 'post',  
            url: "<%=basePath%>*Action.do??operation=updateState&formBO.oid="+formID
            +"&formBO.formNo="+formNO+"&opinion="+opinion,
            dataType: "json",
            success: function(data){
                opener.queryDeleveryBatch();
                alert("<bean:message key='ASMS.1907046'/><%//提交成功!%>");
                window.close();
            },
            error: function(data)
            {
                alert("<%/*提交失败*/%><bean:message key="ASM_S.201611140018"/>");
            }
         });

扩展

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

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值