form表單自動提交


       form表單提交是web項目中經常遇到的,但是如果form中只有一個input為text類型的輸入框時,

   需要格外注意,因為這時候只要你按下回車鍵,form表單就會自動提交,這是form表單的一個特性。

   如何有效的防止呢?

   小編認為最簡潔有效的方法就是增加一個隱藏域。比如下面的代碼就可以解決問題:  

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form action="../index/login.do" method="post" >
   <label for="files">用戶名:</label>
   <input type="text" name="userName">
   <input type="text" style="display: none;">
  <button type="submit">提交</button>
</form>
</body>
</body>
</html>

 但是這也有個bug就是如果input框獲取了焦點,但是未輸入任何字符的情況下,點擊回車鍵依舊可以提交表單。因此接下來的這種方法則規避了這一個BUG


 

第二種方案,就是在input為text的文本框中,增加onkeydown事件,並且當按鍵是回車鍵也就是keyCode=13時,不做處理,代碼如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form action="../index/login.do" method="post">
   <label for="files">用戶名:</label>
   <input type="text" name="userName" onkeydown="if(event.keyCode==13){return false}">
<!--    <input type="text" style="display: none;"> -->
  <button type="submit">提交</button>
</form>
</body>
</body>
</html>

 

                                                以上是小編在實際過程中測試的代碼,如有問題,歡迎留言交流!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM