как убрать Nan в JQuery - PullRequest
       24

как убрать Nan в JQuery

0 голосов
/ 10 июля 2019

У меня есть входное числовое поле в формате, например, 20 000,00

как удалить Нэн, если пользователь не вводит первое поле?

document.getElementById("BasicSalary_x").onblur =function (){    
    this.value = parseFloat(this.value.replace(/,/g, ""))
                    .toFixed(2)
                    .toString()
                    .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    
     
    
}

 function isNumberKey(evt) {
    var charCode = ((evt.which) ? evt.which : event.keyCode);
    return !(charCode > 31 && (charCode != 46 && charCode != 44 && (charCode < 48 || charCode > 57)));

}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="tel"  onkeypress="return isNumberKey(event)" id="BasicSalary_x" placeholder="Basic Salary (RM)"   >


<input type="tel" value="0.00" onkeypress="return isNumberKey(event)" id="deduction" placeholder="Deduction (RM)"   >

1 Ответ

3 голосов
/ 10 июля 2019

Если вы получаете NaN с parseFloat, то вы можете использовать ||0 для преобразования его в ноль (или любое другое значение по умолчанию).

parseFloat("x,xx".replace(/,/g, "")) || 0

В качестве альтернативы, вы можете проверить, если эточисло с isNaN

var val = this.value.replace(/,/g, "");
if (isNaN(val)) {
    alert("Please only enter valid values.");
} else {
    ... parseFloat(val) ...
}

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN

...