0

select/option で動作する html ページがあり、この機能を input type=radio (リストからラジオ ボタン) に変換したいと考えています。

実際には、次のような選択リストがあります。

<select name="DEC-51537a4b580452b9e145b75c-A">
<option selected="" value="OK">OK</option>
<option value="NOK">NOK</option>
</select>

<select name="DEC-51537a4b58045459e145b75c-R">
<option selected="" value="OK">OK</option>
<option value="NOK">NOK</option>
</select>

<select name="DEC-51537a88880452b9e145b75c-A">
<option selected="" value="OK">OK</option>
<option value="NOK">NOK</option>
</select>

ユーザーは、必要な値を選択し、ボタンをクリックします。ボタンは、「DEC-」ごとに結果を取得する JavaScript を呼び出します。

「DEC-」で始まる選択ごとに、次を取得します:-dec-number(たとえば、51537a88880452b9e145b75c)-元のdec値(AまたはR)-およびユーザーが選択したdec値を取得するためにselect.valueを取得します

select を input type=radio に変換したい場合は、まず select を次のように変更します。

<input name="DEC-51537a4b580452b9e145b75c-A" type="radio" checked value="A">A
<input name="DEC-51537a4b580452b9e145b75c-A" type="radio" value="R">R

そしてここでは、ラジオボタンではなく選択で機能するjavascript関数:

  var elements = $doc.getElementsByTagName('select');

  var sel;

  for(var i=0; i<elements.length; i++){
      sel = elements[i];

       if(sel.name.indexOf('DEC-') === 0){
          var selName = sel.name.split('-');
          var oid = selName[1];
          var originalDecision = selName[2];
          var supervisorDecision = sel.value;

          decisions++;
          if(originalDecision == supervisorDecision) {
              rightDecisions++;
          } else {
              wrongDecisions++;

              if(originalDecision == "ACCEPTED") {
                  originalDecision="<h3 class='green'>ACCEPTED</h3>";
              } else if(originalDecision == "REFUSED") {
                  originalDecision="<h3 class='red'>REFUSED</h3>";
              }

              if(supervisorDecision == "ACCEPTED") {
                  supervisorDecision="<h3 class='green'>ACCEPTED</h3>";
              } else if(supervisorDecision == "REFUSED") {
                  supervisorDecision="<h3 class='red'>REFUSED</h3>";
              }

              var content = $doc.getElementById(oid).innerHTML;
              wrongDecisionsTab += "<tr><td>" + content + "</td><td>" 
               + originalDecision + "</td><td><h3>" + supervisorDecision + "</h3></td></tr>";
          }

      }

  }

同じことが必要ですが、ラジオボタンが必要なので、変更しようとしました:

  var elements = $doc.getElementsByTagName('input');

しかし、それだけでは十分ではありません。私は何が欠けていますか?

4

0 に答える 0