Don't允许在<输入类型=数字/>
Don't allow typing alphabetic characters in a <input type=number />
我需要一个文本框,其中,无论何时在里面键入,都应该只允许数字[0-9]。我已经使用了type="number"
,它肯定包含客户端验证,但也允许键入其他字母。我可以通过跟踪每个keydown并与regex匹配来做到这一点,但我想知道是否有任何方法可以限制我只使用html标记键入,而不在JavaScript中定义任何函数来比较每个keydown?
不足以做到这一点的代码是:
<input type="number" id="txt_number" maxlength="70" name="txt_name" placeholder="Number">
感谢您的帮助。
您可以使用jquery.numeric插件。
请参阅这里有类似的问题。
$(document).ready(function(){
$(".numeric").numeric();
});
试试这个
定义javascript函数
允许数字的函数,小数如下
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode != 46 && charCode > 31
&& (charCode < 48 || charCode > 57))
return false;
return true;
}
只允许数字而非小数的函数如下
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
if ((charCode < 48 || charCode > 57))
return false;
return true;
}
Html
<input type="number" id="txt_number" maxlength="70" name="txt_name" placeholder="Number" onkeypress="return isNumberKey(event)">
输入type="number"用于在移动设备上获取数字键盘
Java脚本
function numbersonly(myfield, e)
{
var key;
var keychar;
if (window.event)
key = window.event.keyCode;
else if (e)
key = e.which;
else
return true;
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
return true;
// numbers
else if ((("0123456789").indexOf(keychar) > -1))
return true;
// only one decimal point
else if ((keychar == "."))
{
if (myfield.value.indexOf(keychar) > -1)
return false;
}
else
return false;
}
Html
<input type="number" onkeypress="return numbersonly(this, event)"/>
浏览器的行为不同。在Chrome中,以下代码:
<input type="number" id="txt_number" maxlength="70" name="txt_name" placeholder="Number">
<input type="submit">
只有在表单中并且只有在用户单击提交按钮后,才对您有效。
如果你不介意使用一点Javascript,这可能有助于JS-BIN Demo:
<input type="number" onkeyup="if(!this.checkValidity()){this.value='';alert('Please enter a number')};"/>
您必须将输入框放在表单中,并带有提交按钮。表单验证在提交表单时进行。请在此处查看演示:http://jsfiddle.net/ds345/Q4muA/1/
<form>Number:
<input type="number" name="Number" value="10">
<br>
<input type="submit" value="Submit" />
</form>
试试这个:-
$("#txtAge").keydown(function (e) {
if(e.key=='e' || e.key=='.' || e.key=='-')
return false;
});
我注意到这个问题是在2013年左右发布的。无论如何,现在type="number"正在限制除"e"、"."之外的字母和特殊字符和'+'分别为'e'和'.'被认为是指数数,如1.2e+12被认为是十进制数。
只需添加-min="0"max="9"onkeydown="return false;"
<input type="number" id="txt_number" maxlength="70" name="txt_name" placeholder="Number" min="0" max="9" onkeydown="return false;">
- 输入类型数字,只接受数字,不接受字母jQuery
- 输入类型 = “数字” 的 jQuery
- 在输入类型数字更改时添加复选框
- HTML5 输入类型 = 数字更改步骤行为
- 如果输入类型=数字,则maxlength=5不起作用
- 输入类型数字隐藏输入右侧的箭头
- 表达式类型(数字)
- 类型数字等于数字
- 角度数据绑定 - 输入类型=“数字”
- Opera 12 的输入类型=数字有效性行为的任何解决方法
- 尝试在输入类型数字形式输出中计算总计
- 如何在旧浏览器中验证输入[类型=“数字”]
- 任何双精度类型数字的正则表达式
- 对于输入类型=“数字”如何将默认值设置为 0
- HTML5 输入类型=数字值在 Webkit 中为空,如果包含空格或非数字字符
- Don't允许在<输入类型=数字/>
- 禁用输入类型=数字的输入验证
- 限制用户在html输入中输入范围内的值(类型=数字)
- 使用输入类型数字获取光标位置
- 验证输入类型="数字"