控制我的输入类型并验证其值在我的表单中是一个漂浮我在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控制浮点值。 感谢。
答案 0 :(得分:5)
我认为问题可能是它没有考虑11,2
是一个有效的浮点数,而是期望类似11.2
之类的东西。试试11.2
,看它是否有效。如果这是问题,我不确定是否可以设置一些本地化选项,或者如果您需要在运行isNaN
之前手动交换这两个选项。
编辑啊,this webpage确认:
在许多国家/地区,通常使用小数点逗号而不是小数点。不幸的是,在JavaScript中,您必须使用小数点,无论您在操作系统中使用哪个国家/地区设置。在JavaScript中,只有十进制逗号后面的数字才会用于计算,这将产生不正确的结果。
答案 1 :(得分:1)
11,2
不是有效的浮点数。 Javascript(据我所知)每种编程语言都使用.
作为十进制符号。所以请尝试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
- 属性,如下所示:
<form name="..." action="..." method="..." onsubmit="localize_float(document.getElementById("nperformed");)">
答案 2 :(得分:0)
11,2不是有效的浮点数,因为“小数点”必须是点(。)而不是逗号(,)。
用逗号替换逗号:
var str = champ.value;
str = str.replace(",", ".");
此外,
if(str.value==' '){champ.focus();}
不是一个非常好的条件。请改用trim函数并与“”进行比较。