用javascript控制浮点值

时间:2010-05-20 16:22:53

标签: 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控制浮点值。 感谢。

3 个答案:

答案 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函数并与“”进行比较。