我在我公司的網站上有一個比賽輸入頁面。爲了參加比賽,您創建了一個登錄名,它只是一封電子郵件和一個4位數字的密碼。這裏的PIN字段:是否有瀏覽器不支持maxlength?
<input type="password" name="contest_pin" id="contest_pin" maxlength="4" />
當用戶提交表單,在我們的數據庫中創建帳戶,然後他們收到一封電子郵件(這我就複製),包含他們創建的電子郵件地址和密碼。
以下是我測試過的每個瀏覽器(Mac上的Safari/Chrome/Firefox,Linux上的Chrome/Firefox,Windows上的IE7/8/9)我無法在該PIN字段中輸入超過4位數字。然而,我收到的幾封電子郵件顯示,該用戶創建了超過4個字符的密碼。
這怎麼可能?是否有瀏覽器不支持maxlength?我還沒有在Opera或任何移動瀏覽器上進行過測試。如果它們的引腳長度超過4位,這不是什麼大問題;數據庫將接受更多。我只是想知道他們如何設法達到最大長度。
編輯補充
有太多的答案基本上是說,我單獨給所有的人都回應同樣的事情。我知道我應該總是對任何重要的服務器端進行驗證,並且我們確實有PHP代碼來清理數據,如果這非常重要,我還會讓PHP代碼執行4位數限制。對我們來說它們只有4個字符並不重要,所以我沒有強制執行它。我只是想知道爲什麼maxlength屬性沒有做它設計的目的,這是爲了防止用戶輸入超過一定數量的字符。對於那些建議使用惡意腳本或Firebug的人,我可以100%確定情況並非如此。只有我們網站的註冊用戶(僅限於特定的公司會員名單)才能進入參賽作品頁面,我可以保證該名單上大約100人不會故意試圖繞過輸入類型屬性。
我在這裏得到的問題完全一樣,我知道最大長度很容易規避,但是那些沒有試圖克服障礙的用戶呢?我能想到的唯一事情就是Chris所說的,那就是在某些瀏覽器上覆制粘貼它時不起作用。只有一個例子是IE瀏覽器,如果你在文本區域擁有maxlength屬性,那麼你可以粘貼超過最大長度的文本..這是不是與輸入情況..但也許在其他瀏覽器..我不知道爲什麼人們會粘在別針中。讓我知道,如果你弄清楚它是如何發生的。 – Trevor 2014-02-26 23:42:01
當你添加type =「number」屬性時,maxlength =「x」在MAC上無法工作(chrome&firefox試過):) – 2014-12-12 08:06:40
@MindaugasBernatavičius,那是因爲你需要使用'max'和'min'或'range 'type = number'的屬性。 – 2015-06-30 23:30:21