2016-08-11 10 views
0

HTML本体から呼び出されたときにJavaScript関数が応答しません。 私は、関数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

あなたの要素のidは'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

Clickイベントが発生するまでコードが実行されないため、この場合は違いはありません。 – Pointy

+0

@Pointy変更されました。ありがとう –

2

あなた<script>タグが間違っている:

<script type = "text/javasctipt"> 

あなたは本当に "タイプ" または "言語" の属性を必要としないので、ちょうど

<script> 
を使用

"タイプ"の使用を強く感じる場合は、正しいタイプ:

<script type="text/javascript"> 

「type」属性は、ブラウザが認識するものではありません場合は、<script>内容は完全に静かに無視されます。

+0

ありがとうございました – Leo

0

スクリプトタグのタイプ属性に誤字があります。 text/javasctiptのtext/javascriptに変更してください。それが動作します。

関連する問題