只允许在文本框中输入数字
Possible Duplicate:
How to allow only numeric (0-9) in HTML inputbox using jQuery?只允许在文本框中输入数字
如何只允许在此文本框中写入数字?
<input type="text" class="textfield" value="" id="extra7" name="extra7">
你可以认购onkeypress事件事件:
<input type="text" class="textfield" value="" id="extra7" name="extra7" onkeypress="return isNumber(event)" />
然后定义isNumber
功能:
function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
你可以看到它在action here。
我不知道如何解释你的if语句。如果它大于57,它总是大于31.我认为你可以消除括号。 – pimvdb
谢谢它正在工作。什么是只有字母的字符代码范围?我的意思是我想这样做只接受字母也在不同的功能 – EnexoOnoma
@Giorkouros,这里是ASCII表:http://www.asciitable.com/根据你的意思是字母结果将是不同的。例如,如果你想要A-Z,那么范围是[65,90],而a-z是[97,122]。 –
有了HTML5,你可以做
<input type="number">
您还可以使用正则表达式来限制输入文本。
<input type="text" pattern="^[0-9]*$" />
这不会阻止输入非数字字符。 – MyNameIsKo
@MyNameIsKo它应该,也许你正在使用不支持这种HTML5功能的客户端? – powtac
它不适用于Chrome或Firefox。您可能指的是非数字字符的提交验证,它可以在HTML5中正常工作。然而,最初的问题是关于完全防止非数字输入。我非常确定JavaScript仍然是唯一的方法。 – MyNameIsKo
你也可以使用一些HTML5属性,一些浏览器可能已经利用它们(type="number" min="0"
)。不管你做什么,记得在服务器端重新检查你的输入:你永远不能假设客户端验证已经执行。
你作为一个数字你认为什么?这些数字是'12.3','-4','V','6'吗? –
不知道如果一个jQuery的问题是重复的。 Javascript!= jQuery – Evert
**这不是所引用问题的完全重复**。这个目标是一个javascript的答案,而另一个目标是一个jQuery的答案。不同的受众,不同的解决方案。 –