2015-04-19 2 views
-1

Я пытаюсь получить это, чтобы проверить, является ли нажатие клавиши в текстовом поле числом или нет. Все, что я набираю, дает мне одно и то же окно предупреждения. В нем говорится: «Номер, который вы ввели, не является числом». Кажется, я не могу понять, почему это делается.Попробуйте блок Catch, дающий только один ответ на мой ответ

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Part 1</title> 
<script> 
function Numcheck(){ 
    var number = Number(document.getElementById("enteredChar").value) 
try{ 
if ("number" == "") throw "was empty" 
if (isNaN("number")) throw "is not a number" 
if (isFinite("number")) throw "is good." 
} 
catch(err){ 
alert("The number you entered " + err); 
} 
} 
</script> 
</head> 

<body> 
<form action=""> 
<input type="text" id="enteredChar" onkeypress="Numcheck()"/> 
</form> 
</body> 
</html> 
+0

Что такое "номер"? Это не имеет смысла. –

+0

Мне показалось, что мне нужно будет изменить переменную «enterChar» на число, чтобы это нормально работало. Я также меняю имя переменной, чтобы я мог следить за ней лучше, когда я это делал. – Adam

ответ

4

if (isNaN("number")) throw "is not a number"

Значение, которое вы передаете в isNaN функции "number" которая на самом деле, строка, а не число.

Вы должны изменить все свои "number" на number, то есть имя вашей переменной.

Пример:

<script> 
function Numcheck() { 
    var number = Number(document.getElementById("enteredChar").value) 

    try { 
     //This if is not required. number will never be an empty string. 
     //It will be either a valid number, or NaN. 
     //if (number == "") throw "was empty"; 
     if (isNaN(number)) throw "is not a number"; 
     if (isFinite(number)) throw "is good."; 
    } 
    catch(err) { 
     alert("The number you entered " + err); 
    } 
} 
</script> 
+0

Первый 'if' никогда не будет правдой. Числа никогда не являются пустыми строками. OP должен подтвердить, что 'value'' document.getElementById ("введенный символ") 'не' '' 'перед двумя другими' if '. –

+0

Вы правы. Я соответствующим образом обновлю ответ. –

+0

Должен ли я поставить что-то перед onkeypress = Numcheck тогда или это было бы до моей функции? – Adam

Смежные вопросы