限制字符在文本框中键入

时间:2010-06-17 07:08:25

标签: html

我们如何限制字符在文本框中键入。

5 个答案:

答案 0 :(得分:17)

你可以通过javascript(所以如果javascript关闭,你将无法限制它)

<input type="text" onkeyup="this.value = this.value.replace(/[^a-z]/, '')" />

这会将其限制为仅限a-z字符。结帐regular expressions以查看您可以执行的操作

答案 1 :(得分:7)

如果您有文本框,则必须处理onkeypress事件

<input type='text' onkeypress='keypresshandler(event)' />

您可以使用以下功能限制用户

    function keypresshandler(event)
    {
         var charCode = event.keyCode;
         //Non-numeric character range
         if (charCode > 31 && (charCode < 48 || charCode > 57))
         return false;
    }

答案 2 :(得分:4)

尽管仍然可以,但HTML5并不需要为此要求使用基于JavaScript的解决方案。

<input type="text" name="text" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$">将根据RegExp模式限制允许的字符(在这种情况下:有效的电子邮件地址)。

当用户尝试提交与要求不匹配的数据时,title属性将用作警告/通知。

<form action="/add_country.php">
  Country code: <input type="text" name="country_code" pattern="[A-Za-z]{3}" title="Three letter country code">
  <input type="submit">
</form>

有关详细信息,请参阅documentation on HTML input element。并非所有浏览器都支持它(例如Safari)。

答案 3 :(得分:1)

Ben Rowe的答案确实是接近它的方法。但是,该字符将在删除之前显示在文本框中。您可以使用oninput代替onkeyup来阻止这种情况:

<input type="text" oninput="this.value = this.value.replace(/[^a-z]/, '')" />

答案 4 :(得分:0)

   function isNumberKey1(evt)
{
       var charCode = (evt.which) ? evt.which : event.keyCode;
      if ( char!=8(charCode < 65 || charCode > 106))
         return false;

         return true;
}