2016-10-10 83 views
2

我正在使用此代碼來限制我的字段採用字符的確切數量,但maxlength =「10」的字符也少於10個字符。我需要讓我的輸入字段確切地輸入10個字符,如果我輸入的字符數小於10則會發送一個錯誤。我怎樣才能做到這一點? 這裏是我的代碼:HTML/PHP將輸入字段設置爲確切的數字。

<form action="login.php"> 
    Username: <input type="text" name="usrname" maxlength="10"><br> 
    <input type="submit" value="Submit"> 
</form> 
+0

對於HTML5瀏覽器或所有瀏覽器? HTML5的'pattern'應該可以工作,https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input。對於所有瀏覽器,我會使用JS或進程服務器端。 – chris85

+0

即使你使用HTML或JS,你仍然需要檢查服務器,因爲用戶可以繞過這些檢查。客戶端檢查只是爲了增加便利。 – Barmar

+0

謝謝,我會試着去看看 –

回答

0

您可以使用JavaScript象下面這樣:

<script type="text/javascript">  
    function checkLength(){ 
     var usrname = document.getElementById("usrname"); 
     if(usrname.value.length == 10){ 
      alert("success"); 
     } 
     else{ 
      alert("make sure the input is 10 characters long") 
     } 
    } 
</script> 

<form action="login.php"> 
    Username: <input type="text" id="usrname" maxlength="10"></input><br> 
    <input type="submit" value="submit" onclick="checkLength()" /> 
</form> 
+0

謝謝,我要試試這個。 –

+0

讓我知道它是怎麼回事。它正在處理這個https://plnkr.co/edit/NcqffUZQmGPHxWdZ3gEB?p=preview –

+0

@Alex_Rindone它不適用於我的代碼。如果初始值爲空,則需要通過 –

0

使用HTML <input>模式屬性

<form action="login.php"> 
    Username: <input type="text" name="usrname" pattern=".{10}" required><br> 
    <input type="submit" value="Submit"> 
</form> 
+0

來通過約束驗證(請參見:https://www.w3.org/TR/2011/WD-html5-20110525/association-of-controls-and-forms .html#constraint-validation) – JaeGeeTee

+0

感謝您的快速響應。非常感謝! –

2

在本答覆中提到:https://stackoverflow.com/a/10294291/1515869

如果你想堅持使用HTML5喲ü可以使用模式,像這樣:

<input pattern=".{10}" required placeholder="only 10 characters"> 

但是,請注意在回答上面鏈接,你還需要在需要屬性,以及爲了通過constrain validation

+0

謝謝!這工作,但我想添加一條消息,如果我輸入少於10個字符。現在錯誤信息是空的。 「你必須使用這種格式:」我需要添加字符的數量。如何編輯這個錯誤信息給你,無論我想要什麼? –

+0

與JS很容易做。 @ doudy_05看看這裏:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/Data_form_validation#Customized_error_messages – JaeGeeTee

0

你可能也想做一些服務器端檢查,因爲客戶端Javascript可以修改。

if(strlen($_POST['usrname']) == 10){ 
    // Length matches 
} else { 
    // Length does not match 
} 

如果您打算在不同的輸入和長度下重複使用它,那麼創建一個函數可能會更好。

相關問題