Показать сообщение отдельно
  #16 (permalink)  
Старый 25.06.2019, 11:38
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Несколько упрощенный макет
<input id="gc" disabled>
<form name="myform">
    <p>Выберите один или несколько вариантов<br>
      <label>
        <input type="checkbox" name="testChbx" value="v1">
        Вариант 1</label>
      <br>
      <label>
        <input type="checkbox" name="testChbx" value="v2">
        Вариант 2</label>
      <br>
      <label>
        <input type="checkbox" name="testChbx" value="v3">
        Вариант 3</label>
      <br>
      <label>
        <input type="checkbox" name="testChbx" value="v4">
        Вариант 4</label>
      <br>
    </p>
</form>

<div id="soder"  onclick="calc(0);">Оценка</div>
 
<script type="text/javascript">
var answers = [["v2","v4"],["v7","v8"],["v10"]]; //Массив правильных ответов по 3 билетам

function calc(ticket){
    var chbx = myform['testChbx'];
    var sum=0;
    
    for(var i = 0; i < chbx.length; i++){
        if(chbx[i].checked) {
          sum += answers[ticket].indexOf(chbx[i].value) > -1?1:-1;
        }        
     }
     gc.value  =  +gc.value+ +(sum>0);
  }
</script>

Пример крутится на одном билете. Номер билета - параметр для функции calc.
Массив правильных ответов - просто для иллюстрации, как выглядит.
В этом примере правильные и неправильные варианты имеют одинаковые веса с противоположным знаком +-1
Можно сделать, чтобы один неправильный ответ обнулял весь результат по билету.
Ответить с цитированием