javascript - 在没有 HTML5 的情况下将输入字段限制为仅字母数字

标签 javascript html

为了将输入字段限制为仅字母数字,我在我的网站上使用了以下内容:

  <input 
     type="text" 
     name="url_code" 
     pattern="[a-zA-Z0-9_-]{4,10}" 
     class="widefat-main" 
     title="4 to 10 alphanumerical characters only" 
     />

但是对于不支持 HTML5 的浏览器,获得相同限制的最佳方法是什么?

最佳答案

然后您将需要使用 JavaScript 来检查输入。在你的<form>标记,onsubmit属性需要调用一个将返回 boolean 的函数值(value)。 True 表示表单将通过,false 表示不会。

使用文档选择器获取 input元素,然后检查其 value属性。确保长度合适。然后将其与正则表达式进行匹配。 (在这里了解它们:Regular Expressions)如果一切正常,返回 true。否则返回 false 并在控制台中打印错误或将其写入 <div>。 .如果您想要像 HTML5 方式那样的弹出窗口,则必须使用其他一些魔法。

注意 return validate(); 如果您不将其包含在您的 onsubmit= 中那么它将不起作用,您必须有返回

<!DOCTYPE html>
<html>
   <head>
      <title>Validate</title>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width">
      <style>
         .widefat-main{
         }
      </style>
      <script>
         function validate() {
            var errorDiv = document.getElementById("errorDiv"),
                    regex = /^[a-z0-9]+$/,
                    str = document.getElementById("inputString").value;

            if ((str.length > 4) && (str.length < 10) && regex.test(str)) {
               errorDiv.innerHTML = "Fine string";
               return true;
            }
            else {
               errorDiv.innerHTML = "4 to 10 alphanumerical characters only";
               return false;
            }
         }
      </script>
   </head>
   <body>
      <form action="" onsubmit="return validate();">
         <input 
            id="inputString"
            type="text" 
            name="url_code" 
            class="widefat-main" 
            title="4 to 10 alphanumerical characters only" 
            />
         <input type="submit" value="Submit"/>
      </form>
      <div id="errorDiv"></div>
   </body>
</html>

关于javascript - 在没有 HTML5 的情况下将输入字段限制为仅字母数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21100993/

相关文章:

javascript - 将键组合到由基元和对象组成的 ES6 Map

javascript - 组的 D3 v4 更新模式

html - CSS 拼图 : move last two item of the navigation to the right

html - 为 row-fluid bootstrap 设置背景颜色

javascript - Foundation 5 pinterest 风格的模态弹出窗口

CSS动画到图像的脉冲部分

html - 什么字符代表文本区域中的新行

javascript - 通过变量 angularjs 选择我范围内的一个项目

javascript - 带有 xhr 的 Ajax 发布请求停止所有作者请求

javascript - 如何在 Node.js 4.0+ 中跳过使用 "use strict"?