【问题标题】:limit number of characters in html form限制html格式的字符数
【发布时间】:2014-05-20 19:16:42
【问题描述】:

我想做的是从用户那里获得一些输入(即姓名),但将字符数限制为 5 个以上....有没有办法做到这一点?

还有没有办法确保文本输入只接受数字? (尝试输入ID)

 <tr>
   <th>ID:</th>
   <td><input type="text" placeholder="ID" name="studet_ID"></td>
 </tr>
 <tr>
   <th>Full name:</th>
   <td><input type="text" placeholder="Full name" name="studet_name">
 </td>

【问题讨论】:

  • 您的意思是希望最少个字符数为6?
  • 在接受任何数据之前,您始终可以进行 JavaScript 表单验证和后端 (PHP) 验证。

标签: php html forms


【解决方案1】:
<input pattern=".{5,}" required title="5 characters minimum" type="number">

输入模式是在表单中强制输入一系列字符的最简单方法。

编辑:

  1. 浏览器对模式的支持有限。
  2. 对 ID 使用数字类型

【讨论】:

  • @MaximeLorant 我将包括有限的浏览器支持。
  • +1 表示模式属性。此外,&lt;input type="number" /&gt; 可用于 ID 输入。
【解决方案2】:

尽管您应该检查后端的长度(即您的 PHP 脚本)。在客户端有几种方法可以做到这一点。

您可以使用各种 JavaScript 库 [1] [2] [3] 来实现这一点,但最简单的方法是使用 HTML 5 表单属性:http://www.w3.org/TR/html5/forms.html#the-maxlength-and-minlength-attributes

<input type="text" name="student_name" minlength=5>

您可以为 HTML5 中的输入字段指定最小和最大长度。

同样,您可以使用typehttp://www.w3.org/TR/html5/forms.html#attr-input-type 来检查号码。

【讨论】:

    【解决方案3】:

    对于您的问题或解决方法,没有是或否的答案。让我们从限制开始(>5 个字符)。

    关于长度:是和否。检查这个 Is there a minlength validation attribute in HTML5? 但是在我看来这不是最好的方法。

    仅关于数字...我认为有一个“数字”输入类型。但是浏览器支持很差,所以它不是一个真正的解决方案。

    所以有两种方法可以做到这一点。在客户端 (Javascript) 或服务器端 (PHP) 执行此操作。 Javascript 使您能够在发送之前验证输入。但是:禁用 JS 或足够邪恶以操纵您的脚本的用户(这很容易。您甚至可以使用 Chrome 或 FF 中的内置工具“破解”JS-Validation)将轻松绕过您的验证。因此,无论如何,任何表单输入都必须在服务器端进行验证。如果您要使用他的输入,例如mysql-querys 或其他东西一定要检查它是否有恶意内容。对于一些示例和“插图”,您可以使用关键字“SQL-Injection”查看维基百科。

    那么你必须做什么:

    if(strlen($_POST['student_ID'])<5) { echo "Error! >5 characters"; }
    

    对于数字输入

    if(!is_numeric($_POST['student_name']) { echo "Error! Nums only.";}
    

    但是,由于用户获得直接反馈,前端验证仍然很有帮助。您可以检查 JS 的“onchange”(每次值更改时触发)或“onblur”(字段失去焦点,因此您可以假设用户已完成输入他的值)属性。检查本身在 JS 中的工作方式几乎相同。你可以使用 alert-function 来通知用户。

    希望这会有所帮助。编码愉快。

    【讨论】:

      【解决方案4】:

      只需属性 maxlength

      Username: <input type="text" name="example" maxlength="10">
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-11
        • 2019-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多