Показать сообщение отдельно
  #4 (permalink)  
Старый 01.04.2011, 23:34
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

вот оно. ошибка в логике. проеп массив один

<form name="po">
<table border="1">
<tr><th>Памятник</th><th>Находится в городе</th>
  <tr><td>
  <select size =4 id="pamyatniki" multiple>
  <option value="1">Стена Плача <br>
  <option value="1" >Священный камень Кааб<br>
  <option value="3">Медный всадник<br>
  <option value="4">Третьяковская галерея<br>
  <option value="5">Триумфальная арка<br>
  <option value="6">Статуя Свободы<br>
  <option value="7">Тауэр<br>
  </select>
  </td>
  <td>
  <select size=4 id="goroda">

  <option value="1">Иepycaлим<br>
  <option value="2">Милан<br>
  <option value="3">Пapиж<br>
  <option value="4">Мадрид<br>
  <option value="5">Лoндoн<br>
  <option value="6">Нью-Йорк<br>
  <option value="7">Бepлин<br>
  </select>
  </td></tr>


</table>
<input type="button" value="Результат" onclick="p();"><br>
  Количество правильных ответов <input type="text" id="9" name="res" size="5" disabled="true">
  <br>
    Количество неправильных ответов <input type="text" id="10" name="res1" size="5" disabled="true">
  <input type="reset" value= "Обновить" onclick="reset">
</form>


<script type="text/javascript">
function gSI (sel)  {
  var ar = [];
  
  for (var i=0,b=sel.options.length; i < b; i++) sel.options[i].selected && ar.push(i);
  
  return ar;
};

/* возвращает массив выделенных элементов  */


function p(){
   var ri = 0, // колво правильных 
   fa = 0;// колво неверных
   
var sel = document.getElementById('pamyatniki');
var right = document.getElementById('goroda').value;
 
var ar = gSI(  sel  ),i = 0, b = ar.length;

// цикл по массиву выделенных селектов

while( i < b ){
       
    // сравниваем значение right ( город ) со значением выделенных options. все по порядку
       
    if(  sel.options[ ar[ i ] ].getAttribute('value') == right )  ++ri; else ++fa;
    
    i++;
    
}
document.getElementById('9').value=ri;
document.getElementById('10').value = fa;



}
</script>


у мадрида value 4 стоит! насчет Третьяковской галереи в мадриде ничего не ведаю
Ответить с цитированием