Правильно ли я здесь использую функцию isNAN в JavasScript? - PullRequest
1 голос
/ 14 июля 2011

У меня есть форма, где пользователь вводит 3 значения, которые затем вычисляются.Выходные данные снова отображаются в форме в некоторых «только для чтения» выходных окнах.Для каждого ввода я хочу проверить, являются ли они числом, если нет, вместо формы, показывающей «NaN», я хочу отобразить сообщение об ошибке «Пожалуйста, введите число» (или что-то в этом роде).Ниже приведен код, который я использую, который выполняется "onkeyup":

function checkforNumber() 
{
    if (isNaN(sInput || dInput || pInput) == true) {
        alert("You entered an invalid character. Please reset the form.");
    }
    else {
        return(false);
    }
} 

Я неправильно использую эту функцию?Что-то не так с синтаксисом?

Спасибо

Ответы [ 2 ]

3 голосов
/ 14 июля 2011
if (isNaN(sInput) || isNaN(dInput) || isNaN(pInput)) {
    alert("You entered an invalid character. Please reset the form.");
}

также убедитесь, что эти 3 переменные sInput, dInput и pInput не являются строками, а получены с помощью parseFloat или parseInt методы.

var sInput = parseFloat(document.getElementById('sinput').value);
var dInput = parseFloat(document.getElementById('dinput').value);
var pInput = parseFloat(document.getElementById('pinput').value);
1 голос
/ 14 июля 2011
if (isNaN(sInput) || isNaN(dInput) || isNaN(pInput))

Это то, что, я думаю, ты намеревался.Вам нужно передавать каждое значение, которое вы хотите проверить, в функцию isNaN по одному.Также обратите внимание, что вам не нужна часть == true, потому что isNaN возвращает true или false, поэтому условие будет возвращено к возвращаемому значению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...