form表单action重复提交2次

1 篇文章 0 订阅

          在做一个jsp提交页面时,数据莫名其妙提交2次,数据库数据插入2次,开始只把注意力集中在提交到Servlet里,做了很多测试,折腾半天,才测试出来:根本不是Servlet的问题!问题出在jsp页面上。jsp页面的提交事件导致自动提交了2次。
form表单的js判断函数只返回false,忘记写返回true,真是郁闷死。就像下面这样:
function check()
{
if(""==document.myform.name.value)
{//作业名称
window.alert("请先填写作业名称!");
document.myform.name.focus();
$(".name").next().show();
return false; //离开函数
}
}
提交按钮 οnclick="javascript:return(checkform());"
上面的check()函数由于缺少return true,导致form表单action重复提交2次。
搜索一下,网上很多人遇到form表单action重复提交2次的问题,原因都是大同小异:
如下
1.
(1)<input type="submit" value="tijiao" οnclick="return checkField();"/>或者图片<input type="image" src="../images/btn-login.gif" alt="Login" class="btn-login" οnclick="return checkField();"/>
(2)if(usernameValue !== "" && passwordValue !== ""){

//document.getElementById("loginForm").submit(); 如果写了这行就提交了2次。
return true;
}

2.jsp页面有些链接地址是""
如:
<img src="" />
<link type="text/css" href=""/>" rel="stylesheet" />
主要就是连接不能为空。
3.
最近在做一个JAVA项目,发现在登陆页面点击登陆之后都会执行2次ACTION的代码,跟踪了2天终于找到问题的根源:
在登陆页面LOGIN.JSP中,如果提交按钮写成如下的方式则会提交两次:
<script type="text/JavaScript">
function loginFunc()
{
var form = document.getElementById("form1");
form.submit();
}
</script>



<form action="processLogin.action" method="post" id="form1">
<s:textfield name="username" cssClass="input" style="width:150px;" value=""></s:textfield>
<s:password name="password" cssClass="input" style="width:150px;" value=""></s:password>
<input type="submit" οnclick="loginSystem()"/>//问题出在这一行
</form>

submit类型本身就会提交到ACTION类;onclick方法中又调用了一次submit提交方法,所以导致执行了两次ACTION的代码。

解决方式:
<input type="button" οnclick="loginSystem()"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值