2016-01-31 2 views
0

Когда я ввожу значения, которые я могу успешно предоставить для достижения возраста, однако мне нужна проверка входных данных, которые сигнализируют об ошибке и вставляют в браузер предупреждение сообщение. Я использую оператор if для этого, но он не работает.как включить сообщение об ошибке javascript при некорректном вводе пользователя

<!DOCTYPE html> 
    <html> 
     <body> 
      <form> 
       Birth Year: 
       <br> 
       <input type="text" name="birthYear"> 
       <br> 
       Current Year: 
       <br> 
       <input type="text" name="currentYear"> 
      </form> 
      <button onclick="calculateAge()">Calculate Age</button> 
      <div id="output"></div> 



<script> 
    function calculateAge() { 
    var ghF = document.querySelector('[name="birthYear"]').value; 
    var xhF = document.querySelector('[name="currentYear"]').value; 
    document.getElementById("output").innerHTML = "You are either "+(xhF - ghF)+" or "+(xhF - ghF + 1) 

    if (ghF) || (xhF) !== "number" { 
     confirm("Invalid, please try again") 
    } 
    }; 
    </script> 
+0

Просмотрите свои синтаксические ошибки в консоли. Условие, следующее за 'if', должно быть заключено в скобки. –

ответ

0

Вы можете использовать метод parseInt для анализа пользовательского ввода в номер:

var ghF = parseInt(document.querySelector('[name="birthYear"]').value, 10); 
var xhF = parseInt(document.querySelector('[name="currentYear"]').value, 10); 

, а затем проверить NaN:

if (isNaN(ghF) || isNaN(xhF)) { 
    // One of the two user inputs couldn't be parsed to a number 
    alert('Invalid, please try again'); 
} 

и сделать эту проверку, прежде чем на самом деле с помощью значения, например, поставьте это в else часть вашего состояния:

document.getElementById("output").innerHTML = "You are either " + (xhF - ghF) + " or " + (xhF - ghF + 1); 
Смежные вопросы