2017-10-19 59 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 –