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');
しかし、それだけでは十分ではありません。私は何が欠けていますか?