2016-08-02 2 views
-1

ниже этого текста мой код Это хорошо работает, когда я ввод пустой/низкий Num/высокий Num однако, когда я строка ввода не работает хорошоя не могу исправить мою ошибку

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <h1>Show error message depending on input value by using try/catch/throw</h1> 
    <input type="text" id="input1"> 
    <button id="btn1" onclick="showR()">Show the result</button> 
    <p id="demo1"></p> 

    <script type="text/javascript"> 
     function showR(){ 
     var x; 
     x= document.getElementById('input1').value; 
     //x= Number(x); 
     try{ 
      if(x=="")throw "empty"; 
      if(x==isNaN(x))throw "not a number"; 
      x= Number(x); 
      if(x<5)throw "too low"; 
      if(x>10)throw "too high"; 
      document.getElementById(demo1).innerHTML=x; 
     }catch(err){ 
      document.getElementById('demo1').innerHTML = "input is : " + err; 
     } 
     document.getElementById('input1').innerHTML='hi'; 
    } 
    </script> 
</body> 
</html> 

сообщение об ошибке вход: TypeError: Невозможно установить свойство «innerHTML» нулевых , что является причиной и как я могу решить эту проблему

+3

'if (x == isNaN (x))' всегда false ... избавиться от 'x ==' –

+0

Использовать [JSHint] (http://jshint.com/) в следующий раз. Это экономит вам много времени и работы и уменьшает необходимость задавать опечатки, связанные с такими вопросами. – Xufox

ответ

2
document.getElementById(demo1).innerHTML=x; 

это должно быть изменено на

document.getElementById('demo1').innerHTML=x; 

Во-первых, научитесь читать ошибку.

+1

«Во-первых, научитесь читать ошибку». Большой совет, но, возможно, OP ищет, как найти ошибку, поэтому размещать здесь. Может быть, совет по проверке консоли браузера? – NewToJS

+0

@NewToJS Спасибо за ** Мудрость ответа ** – TomIsion

+0

[переменная судьи - номер] (http://stackoverflow.com/questions/18082/validate-decimal-numbers-in-javascript-isnumeric) – TomIsion