在angularjs有任何可用的功能,只允许数字被输入到一个文本框状
我使用以下Javascript来限制我的网站上的文本字段只接受数字输入,而不是其他字母或字符.问题是,它真的拒绝所有其他主要投入物,如ctrl- A选择文本,或者甚至像任何其他浏览器的功能ctrl- T或ctrl- W当选定文本框.有没有人知道一个更好的脚本只允许数字输入,但不能阻止正常命令(没有直接输入到字段中)?谢谢这是我现在使用的代码:
function numbersonly(e, decimal)
{
var key;
var keychar;
if (window.event)
key = window.event.keyCode;
else if (e)
key = e.which;
else
return true;
keychar = String.fromCharCode(key);
if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27))
return true;
else if ((("0123456789").indexOf(keychar) > -1))
return true;
else if (decimal && (keychar == "."))
return true;
else
return false;
}
Run Code Online (Sandbox Code Playgroud)
编辑:提供已经解决了我的允许像命令的问题的解决方案中没有ctrl- A当选定文本框.这就是我在这里提出的要点,所以我又回到了使用我的原始剧本.那好吧.
虽然我很确定这在昨天或前一天工作,但是<input type="number" min="0" max="50" step="10" value="0" />,例如,IE10中不再有效.我已经使用http://ie.microsoft.com/testdrive/HTML5/Forms/Default.html测试了我的浏览器,它已经不再适用了.还有谁有相同的问题吗?或者,它从来没有奏效?
当我输入输入类型编号时,字母e和特殊字符也会显示在输入字段中.我想只显示数字.如何阻止他们?
<input type="number">Run Code Online (Sandbox Code Playgroud)
我无法将文本输入上的pattern属性限制为数字.根据javascript正则表达式列表,[d]或[0-9]应该这样做.但在
<input dir="ltr" type="text" title="Enter numbers only." pattern="[\d]{9}" id="uid" name="1" placeholder="Enter UID" required="'required'" class="required placeholder" minlength="9" maxlength="9" autocomplete="off" />
Run Code Online (Sandbox Code Playgroud)
它对我不起作用(在任何浏览器中).我必须添加js验证,如下所示(基于这篇文章决定简化这条路线):
HTML:
onkeypress='return isNumberKey(event)'
Run Code Online (Sandbox Code Playgroud)
JS:
function isNumberKey(evt){
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
我主要想知道是否有一种方法可以让pattern属性起作用.但也可以随意评论我是否正在使用最佳实践路线.我不想使用HTML5,<input type="number"/>因为它还没有被广泛支持.
我正在制作一个简单的网络应用.在其中的一部分,我已经包含了一个类型="数字"的输入框
<input type="number" min="0">
Run Code Online (Sandbox Code Playgroud)
无论如何,当我在最新的谷歌Chrome浏览器中运行代码时,我也可以输入文字:

我不希望用户能够这样做.我该如何纠正这个?
所以,所有问题都在主题标题中.输入type="number"与pattern="[0-9]*"在Chrome精品工程,但允许在FF字母.有没有办法在不使用jQuery或JS的情况下修复它?
.small-input {
-moz-appearance: textfield;
}
.small-input::-webkit-inner-spin-button {
display: none;
}
.small-input::-webkit-outer-spin-button,
.small-input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
}Run Code Online (Sandbox Code Playgroud)
<input class="small-input " pattern="[0-9]*" value="" type="number">Run Code Online (Sandbox Code Playgroud)
我在输入时只有允许使用jquery库的浮点数时有痛苦的时间.我的代码无法阻止chacacter"." 当它成为第一个输入时,任何人都可以指导我解决这个问题吗?
$('.filterme').keypress(function(eve) {
if ( ( eve.which != 46 || $(this).val().indexOf('.') != -1 )
&& ( eve.which < 48 || eve.which > 57 )
|| ( $(this).val().indexOf('.') == 0)
)
{
eve.preventDefault();
}
});?
Run Code Online (Sandbox Code Playgroud) 如何限制输入框仅使用数字.
因此,如果用户要输入az中的任何内容,它将无法在输入框中工作.
对某些人来说这似乎很容易,但对我来说,这听起来像火箭科学.
请不要jQuery.
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<input type="text" id="numbersonly" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在使用Spring的表单:输入如下:
<form:input type="number" .....>
Run Code Online (Sandbox Code Playgroud)
在我的jsp中,但当我检查在浏览器上呈现的html时,它显示如下:
type="number" type="text"
Run Code Online (Sandbox Code Playgroud)
即,type在html中生成两个属性.
另一方面,如果我在浏览器中使用inspect element选项进行检查,则显示正确 - 仅type="number"按预期方式.
编辑 - 我的问题:为什么我在生成的html(type="number" type="text")中获得两个类型属性?如何解决?
javascript ×6
html ×5
angularjs ×2
html5 ×2
css ×1
jquery ×1
jsp ×1
jsp-tags ×1
numbers ×1
numeric ×1
regex ×1
spring-form ×1
textbox ×1
textfield ×1
user-input ×1
validation ×1