[英]controling a float value with javascript
为了控制我的输入类型并验证其值是否在我的表单中是一个浮点数,我使用javascript来处理它,如下所示:
function verifierNombre () {
var champ=document.getElementById("nperformed");
var str = champ.value;
if(str.value==' '){champ.focus();}
if (isNaN(str)) {
alert("Invalid Valid! the field must be a number");
champ.focus();
return false;
}
return true;
}
但是它仍然是错误的,因为它不接受真正的浮点数。 因此,当输入“ 11,2”之类的值时,警报会变小。
我想知道如何使用javascript控制浮点值。 谢谢。
我认为问题可能在于它没有考虑11,2
是有效的浮动,而是期望像11.2
这样的东西。 尝试11.2
,看看它是否有效。 如果那是问题所在,我不确定是否可以设置一些本地化选项,或者不确定是否需要在运行isNaN
之前手动交换两者。
编辑 Ah, 此网页确认了这一点:
在许多国家/地区,通常的做法是使用小数逗号而不是小数点。 不幸的是,无论您在操作系统中使用哪个国家/地区设置,在JavaScript中都必须使用小数点。 在JavaScript中,仅将小数点逗号后的数字用于计算,这将产生错误的结果。
11,2
不是有效的浮点数。 就我所知,Java语言就像每种编程语言都使用.
作为十进制符号。 因此请尝试11.2
。
如果您想接受,
可以这样进行:
function verifierNombre() {
var champ=document.getElementById("nperformed");
var str = champ.value;
if(str.value==' ') champ.focus();
if (isNaN(str.replace(',','.')) {
alert("Invalid Valid! the field must be a number");
champ.focus();
return false;
}
return true;
}
function localize_float(champ) {
champ.value = champ.value.replace(",",".");
}
然后在表单中添加onsubmit
-attribute,如下所示:
<form name="..." action="..." method="..." onsubmit="localize_float(document.getElementById("nperformed");)">
11,2不是有效的浮点数,因为“小数点”必须是点(。),而不是逗号(,)。
用点替换逗号:
var str = champ.value;
str = str.replace(",", ".");
也,
if(str.value==' '){champ.focus();}
条件不是很好。 请改用修剪功能,并与“”进行比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.