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