2017-10-19 60 views
0

試圖讓程序要求最小長度爲8,最大長度爲30但它不起作用,有人可以讓我朝着正確的方向請謝謝! (9號線)使用模式屬性HTML不檢查長度的代碼

<?php ob_start(); ?> 
    <html> 
     <head> 
      <title>Teacher Registeration</title> 
     </head> 
     <body> 
      <form method='POST' action='TeacherRegisterCheck.php'> 
      Email:<input type="email" id= "Email" name="teacherEmail" required /><br><br> 
      Password:<input type="password" pattern=".{8,30}" id= "Password" name="teacherPassword" required title=" 8 to 30 characters" /><br><br> 
      First Name:<input type="text" id= "First_Name" name="teacherfName" required /><br><br> 
      Last Name:<input type="text" id= "Last_Name" name="teacherlName" required /><br><br> 
      <label for="Title"> Title: </label> <select name="Title"> 
       <option selected="" value= "Default"> (Select A Title) </option> 
       <option value= "Mr">Mr.</option> 
       <option value= "Mrs">Mrs.</option> 
       <option value= "Miss">Miss.</option> 
       <option value= "Ms">Ms.</option>    
       <option value= "Dr">Dr.</option> 
       <option value= "Master">Master.</option> </select> </br></br>   
      <button type="submit"> Enter </button> 
      </form> 
     </body> 
    </html> 
    <?php 
+2

什麼是你看到的行爲?你使用什麼瀏覽器和版本? – hoffm

+0

適用於FireFox 57.可能是瀏覽器特定的。 http://jsbin.com/pupuxoqome/edit?html,console,output – bassxzero

+0

它不檢查只是去下一個PHP文件,我使用谷歌瀏覽器61.0.3163.100 –

回答

-1

使用使用MINLENGTH =「8」和最大長度=「30」

+0

已經嘗試過隊友! –

+0

'minlength'不是有效屬性 – bassxzero

+0

yesssssss它是 – Eathen00

0

我碰到這個問題,你不能使用pattern,因爲目前尚不具備對全跨瀏覽器支持一些iOS safariAndroid browsers可能無法正常工作。我試圖找到一種解決方法,但我最終確定最安全的解決方案是通過Javascript來檢查客戶端,當然還有服務器端通過PHP進行檢查。

+0

我試過使用javascript,但我有一個錯誤,並認爲需要和模式會更容易。 –

+0

當然,它會更容易,但最終的目標是要安全... :) 請記住,如果你要在移動瀏覽器中使用它,不要依賴HMTL5這些指令。對於某些iOS Safari版本,所需的取消選項也不起作用。因此,再次使用JS和PHP檢查所需的字段。 – AlexCode

0

這很有趣。根據我的理解,[.]應該匹配任何非換行符,但由於某些原因,此處未能輸入密碼。我建議你更清楚地說明你的搭配。例如,您可以匹配非空白字符(下面的示例),但如果您計劃在密碼中允許空格,這將無濟於事。在這種情況下,您只需要在表達式中使用更廣泛的允許字符列表/模式。

所有這一切說,從來沒有依靠單獨的前端驗證。總是進行服務器端驗證以及代替這一點。

<form method='POST' action='google.com'> 
 
Password: 
 
<input type="password" pattern="[^\s]{8,30}" id= "Password" name="teacherPassword" required title=" 8 to 30 characters" /><br><br>   
 
<button type="submit"> Enter </button> 
 
</form>

+0

我試過你的改動,但它沒有幫助。不管怎麼說,還是要謝謝你!另外我想知道[^ \ s]做什麼,因爲我還不熟悉HTML和PHP。 –

+0

有趣。你是否運行了該代碼段?它在那裏工作。也許你的代碼中還有其他元素髮揮作用。既然你問[^ \ s]匹配任何非空白字符。 https://regex101.com/r/yq0O3E/1 –