我正在使用javascript对项目进行一些表单验证。什么即时工作,但似乎可能有更好的方法来做到这一点。这是我所拥有的一个例子。
onkeypress="return keyNumOnly(event)"
function keyNumOnly(key)
{//this allows numbers and decimals.
var keychar;
var numcheck;
var keynum;
if(window.event) // IE
{
keynum = key.keyCode;
}
else if(key.which) // Netscape/Firefox/Opera
{
keynum = key.which;
}
if (keynum==8)
{
return true;
}
keychar = String.fromCharCode(keynum);
numcheck = /\d/;
if (keychar== ".")
{
return true;
}
return numcheck.test(keychar);
}
答案 0 :(得分:1)
我建议使用预先打包的解决方案进行表单验证。例如,如果您可以使用jQuery,jQuery Validation Plugin可以很好地验证表单 - 实时验证(就像您正在做的那样)以及“提交”事件之前的验证。
答案 1 :(得分:1)
一些清理:
someTextbox.onkeypress = function(event) { // you can pass a function directly
var event = event || window.event,
// this means: event or window.event if event does not exist
keynum = event.keyCode || event.which,
// event.keyCode or event.which otherwise
keychar = String.fromCharCode(keynum),
numcheck = /\d/;
if(/\t|\./.test(keychar)) {
// checking for dot or tab using a regexp: \t is tab, | means 'or', \. is dot
return true;
}
return numcheck.test(keychar);
}
答案 2 :(得分:0)
表单验证(例如针对正则表达式)是HTML5的一部分,因此可以很快由浏览器本身完成。