2016-08-11 2 views
0

Функция JavaScript не отвечает при вызове из тела HTML. Я продолжаю получать ошибку, что функция sayHi() не определена.Я получаю ошибку - функция sayHi() не определена, я не понимаю

<head> 
    <meta charset="UTF-8"> 
    <title>innerHTML.html</title> 

    <script type = "text/javasctipt"> 
     // javasctipt 
     function sayHi(){ 
      txtName = document.getElementById("txtName"); 
      divOutput = document.getElementById("divOutput"); 

      var name = txtName.value; 

      divOutput.innerHTML = "<em>" + name + "</em>"; 
      divOutput.innerHTML += " is very nice name."; 
     } 
    </script> 

</head> 

<body> 
    <h1>Inner HTML Demo</h1> 

    <form action = ""> 
     <fieldset> 
      <label>Please type your name</label> 
      <input type = "text" 
        id = "txtname" /> 
      <button type = "button" 
        onclick = "sayHi()" > 
       Click Me 
      </button> 
     </fieldset> 

    </form> 

    <div id = "divOutput"> 
     Watch this space 
    </div> 


</body> 
</html> 
+2

У вас есть опечатки в HTML. 'txtname' должно быть' txtName', а 'text/javasctipt' должно быть' text/javascript'. – 4castle

ответ

1

идентификатор вашего элемента является 'txtname', но вы хотите, чтобы получить его, как 'txtName'.

<head> 
 
    <meta charset="UTF-8"> 
 
    <title>innerHTML.html</title> 
 
<script> 
 
    
 
    
 
     function sayHi(){ 
 
     txtName = document.getElementById("txtname"); 
 
     divOutput = document.getElementById("divOutput"); 
 

 
     var name = txtName.value; 
 

 
     divOutput.innerHTML = "<em>" + name + "</em>"; 
 
     divOutput.innerHTML += " is very nice name."; 
 
     } 
 
    
 
    </script> 
 
</head> 
 

 
<body> 
 
    <h1>Inner HTML Demo</h1> 
 

 
    <form action = ""> 
 
     <fieldset> 
 
      <label>Please type your name</label> 
 
      <input type = "text" 
 
        id = "txtname" /> 
 
      <button type = "button" 
 
        onclick='sayHi()'> 
 
       Click Me 
 
      </button> 
 
     </fieldset> 
 

 
    </form> 
 

 
    <div id = "divOutput"> 
 
     Watch this space 
 
    </div> 
 

 

 

 

 
</body>

+0

Не будет иметь значения в этом случае, так как код не запускается до тех пор, пока не произойдет событие щелчка. – Pointy

+0

@Pointy Были изменены.Спасибо –

2

Ваш <script> тег является неправильным:

<script type = "text/javasctipt"> 

Вы действительно не нужно "тип" или "язык" атрибуты, так что просто использовать

<script> 

Если вы вынуждены использовать «тип», используйте правильные Тип:

<script type="text/javascript"> 

Если атрибут «типа» не то, что браузер распознает, то <script> содержимое полностью и молча игнорируются.

+0

спасибо за помощь – Leo

0

В атрибуте сценария есть атрибут типа typo. Пожалуйста, измените его на текст/javascript из текста/javasctipt. Это будет работать.

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