簡體   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