2017-09-28 21 views
0

エラーが発生しました。Uncaught TypeError:ヌルのプロパティ 'onclick'を設定できません。 私は場所にスクリプトタグ内のコードを上に移動Uncaught TypeError:ヌルのプロパティ 'onclick'を設定できません - スクリプトを上に移動しました。

<body> 
  <form method="post" action=""> 
    <select id="mainDD" data-placeholder="Choose" class="chzn-select" style="width:600px;"> 
    {% for i in json_data.items.values %} 
      <option value="{{forloop.counter}}">{{ i }}</option> 
    {% endfor %} 
    </select> 

    {% for key, values in preprocessed %} 
    <select name="type" id=type{{forloop.counter}}> 
    {% for counter, value in values %} 
     <option value="{{forloop.counter}}">{{ value }}</option> 
    {% endfor %} 
    </select> 
    {% endfor %} 
    </form> 

    <script type="text/javascript"> 

     $(document).ready(function() { 
      $('#mainDD').on('change', function() { 
       var thisType = "type" + $(this).val(); 
       for(i=1; i<6; i++) { 
        var thisId = "type" + i; 
        if(thisType !== thisId) { 
        $("#"+thisId).hide(); 
        } 
        else { 
        $("#"+thisId).show(); 
        } 
       } 

      }).trigger('change'); 

     }); 


    </script> 

    <form id="postform" action="http://localhost:8000/app/test_view" method="POST"> 
     {% csrf_token %} 
     <input type="submit" value="SEND"> 
    </form> 
    <script type="text/javascript"> //this code 
     let key = "prop"; 
     let value = "value"; 
      document.querySelector("input[type=button]").onclick = e => { 
      const test = window.open(`test.html?${key}=${value}`, "_blank"); 
      console.log(test); 
      } 
    </script> 
    </body> 

を書いたが、このエラーを解決するためにbodyタグの下にあるが、同じエラーがhappens.How私はこの問題を解決することができますか?

答えて

0

document.querySelector("input[type=button]")は、htmlに「ボタン」タイプの入力がないため、nullを返します。

唯一の入力は<input type="submit" value="SEND">です。たぶんあなたのコードをdocument.querySelector("input[type=submit]")に変更してみてください

+1

また、入力があったとしても、スクリプトのこの部分は 'document.ready'関数にはありません。それは、ボタンがロードされてヌル例外を作成する前にそれを呼び出すことを意味します。 –

関連する問題