0

私は CGI C を使用しており、フォームでコンボボックスを使用しようとしています。選択した値を変更して保存ボタンを押すと、フォームを送信する前に、選択した値の変更が表示されます。いつも7になります。理由がわかりません。これが私のコードです:

<form method=POST action="cgi-bin/aa.cgi?aa.xml" name="aform" onsubmit="return checkConForm(document.aform);">
    <table class=conftable>
            <td class=conftabletd>
            <select name="aa" id="aa" >
            <option value=2>2</option><option>1</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option>
            </select></td>
        </tr>
    </table><br>
    <a href="javascript:submitform(document.aform)" class="more">save</a>
</form> 

js:

function checkConfigForm ( form )
{

   var selectLists = document.getElementsByTagName("select");
   for ( var i=0; i<selectLists.length; i++ ) {
       if (selectLists[i].id != null) {
         alert(selectLists[i].id);
         selectOpts(selectLists[i].id);
        }
    }
    return true;
}

function selectOpts( selectId )
{
  var selectList = document.getElementById(selectId);
  var selectListLength = selectList.length;
  if (selectListLength == 0){
    appendOptionLastwValue( selectId, "" );
    selectListLength = 1;
  }
  for (var i = 0; i < selectListLength; i++) {
    selectList.options[i].selected = true;
  }
  return true;
}


function submitform( form )
{
     if(form.onsubmit() == true){
     form.submit();
} 
4

1 に答える 1

0

明らかに、ここで SELECT オブジェクトのすべてのオプションを次々に TRUE に設定しています。

for (var i = 0; i < selectListLength; i++) {
    selectList.options[i].selected = true;
}

フォームを送信した後、最後のオプション ( options[6] = 7 ) が結果として選択されます。

于 2012-10-17T11:31:34.010 に答える