在网上搜了一堆东东,仔细看了一下,再加上实验,发现原因出在<form>中。
<form method="post">
<button type="button" class="signin" id="loginNewSubmit" onClick="javascript:loginSubmit('new');">登录</button>
form 中使用 button 会默认提交表单,导致两种情况:一是重复提交数据。button 写法 type=“submit”。一种就是onclick方法失效。
建议的写法 <input type="button" onclick="login();"> 、<div class="button" >(js 绑定click事件)
根据个人的实际情形来组合使用 form 和 button、input type="button" 吧。注意的是: 提交表单<input type="button" value="登录" onclick="login()"/> 和<button onclick="login()">登录</button>区别
html按钮有两种:
<input type="button" value="登录" onclick="login()"/>
和<button onclick="login()">登录</button>
这两种在页面上看起来好像一样没什么区别,但是这两种是有区别的。
1,如果在<form id="loginForm" name="loginForm" action="<%=path%>/hdlogin/login.action" method="post"></form>
标签中,使用<input type="button" value="登录" onclick="login()"/>,要想提交form,
你必须写成<input type="submit" value="登录" onclick="login()"/>,
或者document.loginForm.submit();否则form是不会提交的。
2,如果在form中使用<button onclick="login()">登录</button>只要点击就会提交。
<button onclick="login()">登录</button>相当于<input type="submit" value="登录" onclick="login()"/>。
今天在使用<button></button>时,我又在js控制表单提交,结果这个action总是莫名其妙的走两次!
根源就是表单提交了两次,一次是<button></button>,一次是document.loginForm.submit();
这个错误很隐蔽,大家以后要注意。