我使用以下脚本进行十进制验证。我只需输入数字和点符号,仅限123.00。以下函数不支持精细的字母。但它不允许输入点(。)< / strong>符号也是?如何使用此功能输入点符号?
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
else
return true;
}
答案 0 :(得分:1)
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode != 46 && charCode > 31
&& (charCode < 48 || charCode > 57))
return false;
return true;
}
答案 1 :(得分:0)
使用正则表达式,这是一种更优雅的方法。
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode.match('/^[-+]?([0-9]*\.[0-9]+|[0-9]+)$/'))
return false;
else
return true;
}
答案 2 :(得分:0)
function validateFloatKeyPress2(valor, presicion, event) {
var keyCode = (document.all) ? event.keyCode : event.which;
if (keyCode == 8) {
return true;
}
if (keyCode == 46 && valor.value.indexOf(".") >= 0) {
return false;
}
//Enable Only float values
if ((keyCode >= 48 && keyCode <= 57) || (keyCode == 46)) {
if (reverse(valor.value).indexOf(".") > (presicion - 1)) {
return false;
}
return true;
}
else {
return false;
}
}
function reverse(s) {
var o = '';
for (var i = s.length - 1; i >= 0; i--)
o += s[i];
return o;
}
答案 3 :(得分:0)
试试这个:
//验证数字字段
function validate(x) {
var decimal = /^[1-9][\.\d]*(,\d+)?$/;
if (x.match(decimal)) {
return true;
} else {
return false;
}
}
此外,您可以检查parseFloat方法并返回NaN。
答案 4 :(得分:0)
通过isNaN()方法检查 var a = 3.00003
isNaN(a)将返回false
var b ='3.0.0' isNaN(b)将返回true
我认为这种方法可以解决您的问题。
答案 5 :(得分:0)
function checkDecimal(num){ var chkDecimal= /^\d+\.\d{0,2}$/; return chkDecimal.test(num); } alert(checkDecimal(0.2)) alert(checkDecimal(1))
答案 6 :(得分:0)
您的问题的完整解决方案是
function isNumberKey(e)
{
var code = (code ? code : e.which);
if (code != 46 && code > 31 && (code < 48 || code > 57))
return false;
//if it is (.)
else if (code == 46) {
var Value = this.value;
//if value already contains (.) character
if (Value.indexOf('.') != -1) {
var splt = Value.split('.');
//if there is already(.) char then return false
if (splt.length >= 2)
return false;
}
}
return true;
}
答案 7 :(得分:0)
function IsNumeric(e) {
var keyCode = e.which ? e.which : e.keyCode;
var ret = ((keyCode == 46 || keyCode >= 48 && keyCode <= 57) || specialKeys.indexOf(keyCode) != -1);
return ret;
}