有没有一种快速的方法来设置HTML文本输入(<input type=text />)只允许数字键击(加'.')?
我有一个由onkeydown文本框事件触发的函数.如何判断用户是否按了退格键或del键?
我喜欢输入最多3个字符.在Firefox中一切正常我只能在输入中写入3个数字 - 但在safari中你可以在里面写很多数字.
你可以在这两个浏览器中测试它:http://flowplayer.org/tools/demos/validator/custom-validators.htm
现在我用验证插件意识到它 - 但只是为了兴趣我想知道为什么这不起作用?
编辑:
有了这个它的工作
<input class="required" id="field" type="text" maxlength="3" pattern="([0-9]|[0-9]|[0-9])" name="cvv"/>
Run Code Online (Sandbox Code Playgroud)
<input />我的表格上有一个标准控件,装饰着type="date"
渲染时,它会显示正确的水印yyyy-mm-dd,您可以正确选择日期.
但是,当您尝试键入值时,年份将扩展为6位数,而不是4位数.我添加了截图以帮助演示我遇到的问题.
还有其他人得到这个吗?我使用Chrome(版本35.0.1916.153 m)作为我的默认浏览器.
我想要一种方法来强制一个不涉及额外JS的4年输入.


如何在HTML5 input[type=number]文本框中将用户输入限制为给定长度?
答案
不处理非法投入
<input class="quantity" type="number" min="0" max="99999" maxlength="5" />
$("quantity").keyup(function(){
var $field = $(this);
if ($field.val().length > Number($field.attr("maxlength"))) {
var value = $field.val().slice(0, 5);
$field.val(value);
}
});
Run Code Online (Sandbox Code Playgroud)
我知道不支持maxlength属性,但我用它来获取给定的长度.
上面的代码在firefox中工作正常,但在chrome和safari中它只有在我输入五个"VALID"字符时才有效.当我开始输入任何无效字符时,例如"a","b"等,我可以输入更多字母,文本框颜色变为红色.
我发现当输入变为无效时,$field.val()返回总是空字符串和$field.val().length返回0.
我甚至尝试将keyCode转换为用于输入的字符并将其存储在输入框的"data-value"属性中以检查并覆盖输入的值,但它似乎不可靠.
是否有任何解决方案可以使我的input[type=number]行为相同input[type=text][maxlength=5]?
我有一个文本字段.
<input type="number" min="0" max="999">
Run Code Online (Sandbox Code Playgroud)
但我可以在文本框中输入尽可能多的数字.
当我设置max = 999时,我不希望发生这种情况.有谁知道这个的解决方案?我曾尝试ng-maxlength和maxlength,但不起作用.
我想从用户中检索一个4位数的员工ID。如何将输入字段限制为4位数字?
<tr>
<td>4 digit Employee ID:</td>
<td><input type = "number" name = "employee_id" size = "20"></td>
</tr>
Run Code Online (Sandbox Code Playgroud) 如何阻止(使用Angular)用户输入一个简单数字中的4个以上的数字,如下所示:
<input type="number">
Run Code Online (Sandbox Code Playgroud)
我使用ng-maxlength和max属性,但w3.org规范和官方网站Angular指定的那些属性不会阻止用户添加更多数字.
我想要的是输入停止在4位数,就像以某种方式添加一个掩码或东西.
html5 ×4
javascript ×4
html ×3
angularjs ×2
jquery ×2
date ×1
maxlength ×1
onkeydown ×1
safari ×1
user-input ×1
validation ×1