在網上搜了一堆東東,仔細看了一下,再加上實驗,發現原因出在<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();
這個錯誤很隱蔽,大家以后要注意。