HTML5是否有任何类型的文本字段屏蔽,还是我还要陷阱onkeydown
等?
jbabey是对的 - “屏蔽”就像阻止某些非法字符一样,而不是隐藏所输入的内容。
我发现的最好(最简单,最可靠)方法是捕获onkeyup
,然后只对文本字段的值运行正则表达式替换,删除任何非法字符。
这有一些优点:
但它的主要缺点是它在删除它们之前会短暂地显示出类型字符,这使得它看起来非常hackish和不专业。
答案 0 :(得分:10)
查找新的HTML5 Input Types。这些指示浏览器执行客户端数据过滤,但实现在不同浏览器中是不完整的。 pattern
属性将执行正则表达式样式过滤,但同样,浏览器不会完全(或根本)支持它。
但是,这些不会阻止输入本身,它只会阻止使用无效数据提交表单。在屏幕上显示之前,您仍然需要捕获onkeydown
事件以阻止键输入。
答案 1 :(得分:7)
可以通过选择输入元素的类型属性来执行基本验证。例如:
<input type="email" />
<input type="URL" />
<input type="number" />
使用模式属性,如:
<input type="text" pattern="[1-4]{5}" />
必需属性
<input type="text" required />
<强>的maxlength 强>:
<input type="text" maxlength="20" />
min&amp;最大强>:
<input type="number" min="1" max="4" />
答案 2 :(得分:6)
是的,根据HTML5草稿,您可以使用pattern
属性使用正则表达式指定允许的输入。对于某些类型的数据,您可以使用特殊输入字段,如<input type=email>
。但是这些功能仍然普遍缺乏支持或质量不佳的支持。
答案 3 :(得分:3)
有点晚了,但是一个有用的插件实际上会使用一个掩码来对用户输入提供更多限制。
<div class="col-sm-3 col-md-6 col-lg-4">
<div class="form-group">
<label for="addPhone">Phone Number *</label>
<input id="addPhone" name="addPhone" type="text" class="form-control
required" data-mask="(999) 999-9999"placeholder>
<span class="help-block">(999) 999-9999</span>
</div>
</div>
<!-- Input Mask -->
<script src="js/plugins/jasny/jasny-bootstrap.min.js"></script>
的更多信息
答案 4 :(得分:-1)
使用此JavaScript。
$(":input").inputmask();
$("#phone").inputmask({"mask": "(999) 999-9999"});