繁体   English   中英

用javascript控制浮点值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM