2017-11-08 16 views
0

テストのすべての回答が格納されているテーブルをDjangoに持っていますが、ユーザーが指定した応答と比較するために選択すると、最初の質問と同じです。私はこれが最初の要素だけを選択するgetElementsByIdと関係していることを知っています。しかし、HTMLで同じIDのすべての要素を選択するにはどうすればよいですか?djangoのjavascriptで同じidを持つ要素を選択する方法

{% for resposta in questao.resposta_set.all %} 

    <input type="hidden" id="resposta" name="resposta" value="{{resposta.resposta}}"> 
    <script type="text/javascript"> 
     function mostrarSel(){ 
      if (getRadioValor('opcao_escolhida') == document.getElementById("resposta").value){ 
       alert('Resposta Correta'); 
      } 
      else{ 
       alert('Resposta Incorreta'); 
      } 
     } 
     function getRadioValor(name){ 
      var rads = document.getElementsByName(name); 
      for(var i = 0; i < rads.length; i++){ 
       if(rads[i].checked){ 
        return rads[i].value; 
       } 
      } 

      return null; 
     } 

    </script> 
{% endfor %} 
+2

誰かが同じ 'id'を何度も使用するのはなぜですか? –

+2

idは一意でなければなりません。代わりに 'class'名を使用し、[getElementsByClassName](https://developer.mozilla.org/en/US/docs/Web/API/Document/getElementsByClassName)を使用してください。 –

+2

あなたは__NEVERを同じ' id 'の代わりに' class'を使用してください –

答えて

0

html idは複製できません。クラスを使用するか、動的IDを作成できます。

<input type="hidden" id="resposta-{{forloop.counter}}" 
     name="resposta" value="{{resposta.resposta}}"> 
document.getElementById("resposta-1").value which answer would you like take just keep that number. 
document.getElementById("resposta-2").value 
+0

そしてjavascriptは同じままですか? –

+0

id値を変更するだけで、他のコードは同じままです –

0

属性idと同じ値をHTMLドキュメントで1回だけ使用できます。

forループには、属性forloop.counterもあります。可能であれば、これを使用してIDを作成します。

{% for resposta in questao.resposta_set.all %} 
    <input id="resposta{{ forloop.counter}}"> 
{% endfor %} 

idで正しい要素を選択するには、JavaScriptコードで同じ操作を行います。

関連する問題