Модернизация теста с возможностью нескольких правильных ответов
Добрый день!
Прошу Вашей помощи! В скриптах я впервые, но в принципе поверхностный смысл уловил, но синтаксис неизвестен. Во общем нашел необходимый код - Имеем тест, допилил его под свое кол-во вопросов и вариантов ответа, но есть один нюанс - в образце в качестве правильного ответа мог быть только один вариант ответа , а мне для решения поставленной задачи необходимо в нескольких вопросах иметь несколько правильных вариантов ответа в одном вопросе. прошу допилить мой код, или как то оооочень просто описать решение, или ткнуть носом в ссылку... За ранее спасибо!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Тест по электробезопасности</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META content="Автор" name=Author>
<SCRIPT language=JavaScript>
<!-- hide
var
scrtxt = "Бегущая строка" ;
var length = scrtxt.length;
var width = 100;
var pos = -(width + 2);
function scroll() {
pos++;
var scroller = "";
if (pos == length)
{
pos = -(width + 2);
}
if (pos < 0) {
for (var i = 1; i <= Math.abs(pos); i++)
{
scroller = scroller+" ";}
scroller = scroller + scrtxt.substring(0, width - i + 1);
}
else {
scroller = scroller + scrtxt.substring(pos, width + pos);
}
window.status = scroller;
setTimeout("scroll()", 100);
}
// -->
</SCRIPT>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY bgColor=white onload=scroll()>
<SCRIPT language=JavaScript>
<!--Начало сценария
var res="111111111"
function check_me()
<!--вместо "111111" нужно вставить последовательность правильных ответов
{
var count=0
with(document.test)
{
if (!Q1[0].checked&&!Q1[1].checked&&!Q1[2].checked&&!Q1[3].checked&&!Q1[4].checked)
{count+=1};
if (!Q2[0].checked&&!Q2[1].checked&&!Q2[2].checked&&!Q2[3].checked&&!Q2[4].checked)
{count+=1};
if (!Q3[0].checked&&!Q3[1].checked&&!Q3[2].checked&&!Q3[3].checked&&!Q3[4].checked)
{count+=1};
if (!Q4[0].checked&&!Q4[1].checked&&!Q4[2].checked&&!Q4[3].checked&&!Q4[4].checked)
{count+=1};
if (!Q5[0].checked&&!Q5[1].checked&&!Q5[2].checked&&!Q5[3].checked&&!Q5[4].checked)
{count+=1};
if (!Q6[0].checked&&!Q6[1].checked&&!Q6[2].checked&&!Q6[3].checked&&!Q6[4].checked)
{count+=1};
if (!Q7[0].checked&&!Q7[1].checked&&!Q7[2].checked&&!Q7[3].checked&&!Q7[4].checked)
{count+=1};
if (!Q8[0].checked&&!Q8[1].checked&&!Q8[2].checked&&!Q8[3].checked&&!Q8[4].checked)
{count+=1};
if (!Q9[0].checked&&!Q9[1].checked&&!Q9[2].checked&&!Q9[3].checked&&!Q9[4].checked)
<!--скопируйте эту строку и вставьте ниже необходимое количество раз( взвисимости от количества вопросов), изменив Q6 на Q7, Q8 и т.д если добавляете количество вопросов
{count+=1};
if (count>0) <!-- Вычисление и проверка все ли задания выполнены -->
{alert("Вы выполнили не все задания. Проверьте себя.")
}
else answer()
}
}
function control(k,f1,f2,f3,f4,f5,f6,f7,f8,f9)
<!-- добавьте переменные f7, f8,... в зависимости от количества вопросов
{
if (k==1&&f1.checked) return true;
if (k==2&&f2.checked) return true;
if (k==3&&f3.checked) return true;
if (k==4&&f4.checked) return true;
if (k==5&&f5.checked) return true;
if (k==6&&f6.checked) return true;
if (k==7&&f7.checked) return true;
if (k==8&&f8.checked) return true;
if (k==9&&f9.checked) return true;
<!--скопируйте эту строку и вставьте ниже необходимое количество раз( взвисимости от количества вопросов), изменив 6 на 7, 8 и т.д если добавляете количество вопросов
return false;
}
function answer()
{
answ="";
with(document)
{
answ+=control(res.charAt(0),test.Q1[0],test.Q1[1],test.Q1[2],test.Q1[3],test.Q1[4])?"1":"0"
answ+=control(res.charAt(1),test.Q2[0],test.Q2[1],test.Q2[2],test.Q2[3],test.Q2[4])?"1":"0"
answ+=control(res.charAt(2),test.Q3[0],test.Q3[1],test.Q3[2],test.Q3[3],test.Q3[4])?"1":"0"
answ+=control(res.charAt(3),test.Q4[0],test.Q4[1],test.Q4[2],test.Q4[3],test.Q4[4])?"1":"0"
answ+=control(res.charAt(4),test.Q5[0],test.Q5[1],test.Q5[2],test.Q5[3],test.Q5[4])?"1":"0"
answ+=control(res.charAt(5),test.Q6[0],test.Q6[1],test.Q6[2],test.Q6[3],test.Q6[4])?"1":"0"
answ+=control(res.charAt(6),test.Q7[0],test.Q7[1],test.Q7[2],test.Q7[3],test.Q7[4])?"1":"0"
answ+=control(res.charAt(7),test.Q8[0],test.Q8[1],test.Q8[2],test.Q8[3],test.Q8[4])?"1":"0"
answ+=control(res.charAt(8),test.Q9[0],test.Q9[1],test.Q9[2],test.Q9[3],test.Q9[4])?"1":"0"
<!--скопируйте эту строку и вставьте ниже необходимое количество раз( взвисимости от количества вопросов), изменив 5 на 6, 7 и т.д если добавляете количество вопросов
<!--Анализ результатов -->
showResult();
}
}
function showResult()
{
var nok=0;
var i,s;
for (i=0;i<answ.length;i++) {nok+=answ.charAt(i)=="1"?1:0;}
if(nok<3) s='"НЕДОПУСТИМО!!!"';
if(nok==3) s='"СМЕРТЕЛЬНО ОПАСНО!!!"';
if(nok>3 && nok<7) s='"УЖАСНО!!!"';
if(nok==7) s='"ПЛОХО!!!"';
if(nok>7 && nok<9) s='"ХОРОШО!!!"';
if(nok==9) s='"ОТЛИЧНО!!!"';
document.test.s1.
value="Количество правильных ответов "+nok+". Ваша оценка "+s+". Загляните в окно рядом с номером задания. Если ответ правильный, то там (+). Если Вы ошиблись, там (-).";
with(document.test)
{
if (answ.charAt(0)=="1") {T1.value=" +"} else {T1.value=" -"};
if (answ.charAt(1)=="1") {T2.value=" +"} else {T2.value=" -"};
if (answ.charAt(2)=="1") {T3.value=" +"} else {T3.value=" -"};
if (answ.charAt(3)=="1") {T4.value=" +"} else {T4.value=" -"};
if (answ.charAt(4)=="1") {T5.value=" +"} else {T5.value=" -"};
if (answ.charAt(5)=="1") {T6.value=" +"} else {T6.value=" -"};
if (answ.charAt(6)=="1") {T7.value=" +"} else {T7.value=" -"};
if (answ.charAt(7)=="1") {T8.value=" +"} else {T8.value=" -"};
if (answ.charAt(8)=="1") {T9.value=" +"} else {T9.value=" -"};
}
}
</SCRIPT>
<FORM name=test>
<CENTER><FONT face=Arial,Helvetica,sans-serif color=#000099>
<H3>Название теста </H3></CENTER>
<OL>
<LI>
<H4><INPUT size=1 name=T1>
Вопрос 1 </H4>
<INPUT type=radio name=Q1>
ответ 1.1 <BR>
<INPUT type=radio name=Q1>
ответ 2.1.
<BR>
<INPUT type=radio name=Q1>
ответ 3.1 <BR>
<INPUT type=radio name=Q1> ответ 4.1 <BR>
<INPUT type=radio name=Q1>
ответ 5.1 <BR>
<BR>
<LI>
<H4><INPUT size=1 name=T2> Вопрос 2 </H4>
<INPUT type=radio name=Q2> ответ 1.2 <BR>
<INPUT type=radio name=Q2> ответ 2.2 <BR>
<INPUT type=radio name=Q2> ответ 3.2 <BR>
<INPUT type=radio name=Q2> ответ 4.2 <BR>
<INPUT type=radio name=Q2> ответ 5.5 <BR><BR>
<LI>
<H4><INPUT size=1 name=T3> Вопрос 3 </H4>
<INPUT type=radio name=Q3> ответ 1.3 <BR>
<INPUT type=radio name=Q3> ответ 2.3 <BR>
<INPUT type=radio name=Q3> ответ 3.3 <BR>
<INPUT type=radio name=Q3> ответ 4.3 <BR>
<INPUT type=radio name=Q3> ответ 5.3 <BR><BR>
<LI>
<H4><INPUT size=1 name=T4> Вопрос 4 </H4>
<INPUT type=radio name=Q4> ответ 1.4 <BR>
<INPUT type=radio name=Q4> ответ 2.4 <BR>
<INPUT type=radio name=Q4> ответ 3.4 <BR>
<INPUT type=radio name=Q4> ответ 4.4 <BR>
<INPUT type=radio name=Q4> ответ 5.4 <BR><BR>
<LI>
<H4><INPUT size=1 name=T5> Вопрос 5 </H4>
<INPUT type=radio name=Q5> ответ 1.5 <BR>
<INPUT type=radio name=Q5> ответ 2.5 <BR>
<INPUT type=radio name=Q5> ответ 3.5 <BR>
<INPUT type=radio name=Q5> ответ 4.5 <BR>
<INPUT type=radio name=Q5> ответ 5.5 <BR><BR>
<LI>
<H4><INPUT size=1 name=T6> Вопрос 6 </H4>
<INPUT type=radio name=Q6> ответ 1.6 <BR>
<INPUT type=radio name=Q6> ответ 2.6 <BR>
<INPUT type=radio name=Q6> ответ 3.6 <BR>
<INPUT type=radio name=Q6> ответ 4.6 <BR>
<INPUT type=radio name=Q6> ответ 5.6 <BR><BR>
<LI>
<H4><INPUT size=1 name=T7> Вопрос 7 </H4>
<INPUT type=radio name=Q7> ответ 1.7 <BR>
<INPUT type=radio name=Q7> ответ 2.7 <BR>
<INPUT type=radio name=Q7> ответ 3.7 <BR>
<INPUT type=radio name=Q7> ответ 4.7 <BR>
<INPUT type=radio name=Q7> ответ 5.7 <BR><BR>
<LI>
<H4><INPUT size=1 name=T8> Вопрос 8 </H4>
<INPUT type=radio name=Q8> ответ 1.8 <BR>
<INPUT type=radio name=Q8> ответ 2.8 <BR>
<INPUT type=radio name=Q8> ответ 3.8 <BR>
<INPUT type=radio name=Q8> ответ 4.8 <BR>
<INPUT type=radio name=Q8> ответ 5.8 <BR><BR>
<LI>
<H4><INPUT size=1 name=T9> Вопрос 9 </H4>
<INPUT type=radio name=Q9> ответ 1.9 <BR>
<INPUT type=radio name=Q9> ответ 2.9 <BR>
<INPUT type=radio name=Q9> ответ 3.9 <BR>
<INPUT type=radio name=Q9> ответ 4.9 <BR>
<INPUT type=radio name=Q9> ответ 5.9 <BR>
</LI></OL>
<BR>
<CENTER>
<P><TEXTAREA name=s1 rows=4 cols=70> </TEXTAREA> </P><INPUT onclick=check_me()
type=button value="Показать результат">
<INPUT type=reset value="Сбросить ответы"> </CENTER><BR><BR></FORM>
<P>
<H5> © " 2015</H5>
<P></P></FONT></BODY></HTML>
как видите в начале кода указаны правильные ответы последовательно var res="111111111" тоесть если ответить на все вопросы "1" вариант ответа то ответ будет расценен как правильный , вот как сделать что бы там как бы несколько можно было выбирать, как понимаю при этом нужно еще изменить кнопку выбора варианта...так как выбирая тот или иной в одном и том же вопросе "бегунок" как бы перепрыгивает. |
PinokPodZad,
ваш код ужасен и как вы собираитесь отмечать несколько type=radio в одном ответе? |
спасибо за скорый ответ!
я никогда не отличался оптимальностью написания кода ))) но протестировав его - я понял что он работает, для меня на этом этапе этого достаточно. Единственное он работает не совсем так как хотелось бы, и остается задача допилить его так, что бы он заработал. про type=radio вы правы, но я совершенно не знаю как это изменить, всё что я делал это в дримвивере воял пару сайтиков "визиток", так что код читаю на уровне интуиции, имея маленький опыт 1С,С#... потому и обратился за помощью... |
Короч как допилить его так, что бы в тех вопросах где несколько ответов был checkbox , и соответсвенно с него считывало правильные выбраны или нет, например правильный ответ 1,2,5 если хотя бы один не указан или указаны еще другие то в общем итоге ответ считается не правильным, и в конце со всеми засчитывается либо верный либо нет
|
PinokPodZad,
Ваш вопрос из разряда работа |
неужели там много пилить? ... что то мне подсказывает что не так уж и много...
|
PinokPodZad,
Вопрос даже не столько в объеме нового кода и правок, сколько в копании в говнокоде. Проще переписать с нуля чем исправить. Солидарен с рони. |
ну я думаю такая проблема возникала не только у меня, может быть вы ткнете носом в форум (искал не смог найти), может быть у вас есть кусок своего кода, я попробую допилить...
ну а в целом сам код писал не я, я всего лишь допилил. Про качество ручаться не могу, но подобный нашел в двух источниках на просторах... |
PinokPodZad,
есть темы подобные вашей на форуме - надо искать ... а так сначала делается обьект с вопросами а на основании его генерится html -- но в конечном счёте всё упрётся что сами ответы будут заложены в скрипте и их можно будет подсмотреть |
рони,
Цели спрятать ответы не стоит...так же нет цели в оптимальности кода...есть лишь необходимость в работоспособности. |
Вопросник для тестирования
PinokPodZad,
:write: вот так примерно ... questions заполнить вопросами и ответами res - оценками (10 вопросов == 11 оценок)
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
body{
background-color:#66FF99;
color:#000099;
font-family:"Courier New",Courier,monospace;
}
ol{
margin: 0 auto ;
width:200px;
}
.show{
width: 400px;
margin: 10px auto ;
color:#000000;
text-shadow:-2px 2px #D2E0EF;
font-size:18px;
font-family:"Bitter",serif;
line-height:1.4;
}
label{
display:block;
margin:10px;
padding-left:8px;
background:url("http://code.stephenmorley.org/html-and-css/styling-checkboxes-and-radio-buttons/checks.png") no-repeat 0 0;
background-color:#FFCC66;
line-height:24px;
border:#000000 1px solid;
border-radius:15px;
color:#6f8686;
text-shadow:0 0 1px rgba(111,134,134,0.3);
}
label::before{
padding-left:28px;
color:#fff;
content:attr(data-hover);
position:absolute;
opacity:0;
text-shadow:0 0 1px rgba(255,255,255,0.3);
-webkit-transform:scale(1.1) translateX(10px) translateY(-10px) rotate(4deg);
-moz-transform:scale(1.1) translateX(10px) translateY(-10px) rotate(4deg);
transform:scale(1.1) translateX(10px) translateY(-10px) rotate(4deg);
-webkit-transition:-webkit-transform 0.3s,opacity 0.3s;
-moz-transition:-moz-transform 0.3s,opacity 0.3s;
transition:transform 0.3s,opacity 0.3s;
pointer-events:none;
}
label:hover::before,label:focus::before{
-webkit-transform:scale(1) translateX(0px) translateY(0px) rotate(0deg);
-moz-transform:scale(1) translateX(0px) translateY(0px) rotate(0deg);
transform:scale(1) translateX(0px) translateY(0px) rotate(0deg);
opacity:1;
}
label.check{
text-shadow:-2px 2px #346392;
font-size:24px;
color:#fff;
background-position:0 -24px;
}
label.check::before{
content:none;
}
.zero label{
background-color:#CCCCCC;
}
.zero label::after{
content:"?";
}
h2{ font-family:"Bitter",serif;
color: #663300;
text-shadow:-2px 2px #FFCC33;
margin-bottom:4px;
}
.err h2{
text-decoration:underline;
color:#FF0000;
}
.ok h2{
color:#339900;
}
input[type=checkbox]{
width:28px;
margin:0;
padding:0;
opacity:0;
}
input[type=button]{
display:block;
margin: 10px auto ;
padding:2px 12px;
font-size:24px;
font-family:"Bitter",serif;
line-height:1.4;
appearance:none;
color:#fff;
text-shadow:-2px 2px #346392;
background-color:#A33400;
background-image:linear-gradient(top,#6496c8,#346392);
box-shadow:inset 0 0 0 1px #27496d;
border:none;
border-radius:15px;
}
input[type=button]:focus{
outline:none;
}
input[type=button]:hover{
box-shadow:inset 0 0 0 1px #27496d,0 5px 15px #193047;
}
input[type=button]:active{
box-shadow:inset 0 0 0 1px #27496d,inset 0 5px 30px #193047;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function() {
var questions = {
"Цвет яблок?": {
"Синий": false,
"Сиреневый": false,
"Жёлтый": true,
"Красный": true,
"Зелёный": true
},
"Цвет угля?": {
"Синий": false,
"Чёрный": true,
"Жёлтый": false,
"Красный": false,
"Зелёный": false
}
},
answers = [],
res = ["НЕДОПУСТИМО!!!", "ХОРОШО!!!", "ОТЛИЧНО!!!"];
var ol = $("<ol/>");
$.each(Object.keys(questions), function(i, el) {
answers[i] = [false, true];
var li = $("<li/>", {
on: {
"change": function(event) {
$(this).removeClass("zero")
var box = $("input", this),
ok = true,
choice = true;
box.each(function(indx, element) {
element.parentNode.className = element.checked ? "check" : "";
element.checked && (choice = false);
element.checked != element.value && (ok = false);
});
answers[i] = [ok, choice];
}
}
}).appendTo(ol);
$("<h2/>", {
text: el
}).appendTo(li);
var items = Object.keys(questions[el]);
$.each(items, function(i, item) {
$("<label/>", {"attr" : {"data-hover" : item}}).append(
$("<input/>", {
type: "checkbox",
"class": "myclass",
val: +questions[el][item]
})
).append(item).appendTo(li);
});
});
$("body").prepend(ol);
$(".reset").on("click", function() {
$(":checkbox").prop({
"checked": false
});
$("li").change().removeClass("err zero ok");
$(".show").html("")
}).click();
$(".test").on("click", function() {
var ok = 0,
mes = "";
$.each(answers, function(indx, el) {
$("li").eq(indx).toggleClass("err", !el[0])
.toggleClass("ok", el[0])
.toggleClass("zero", el[1]);
if (el[0]) ok++;
if (el[1]) {
mes = "Не все задания выполнены."
};
});
if (!mes) mes = "Количество правильных ответов " + ok + "<br>Ваша оценка " + res[ok];
mes += res.length == ++ok ? "" : "<br> Уточните ответы на вопросы отмеченные красным";
$(".show").html(mes)
})
});
</script>
</head>
<body>
<input class="test" name="" type="button" value="Показать результат">
<input class="reset" name="" type="button" value="Сбросить ответы">
<div class="show"></div>
</body>
</html>
|
рони,
По большей части вы сделали то что нужно...но есть несколько вопросов. первый - в тех вопросах где один вариант ответа не нужно давать возможность выбора больше одного варианта ответа. второй - вставляю код в дрим вивер (копи пастом) - получается ерунда ((( как его закопипастить что бы он был рабочим и у меня ? |
рони,
спасибо за помощь! - решил другим путем...нашел программу для создания тестов, вырвал с него код...допилил под себя...осталось лишь несколько проблем...думаю как нить допилю |
Цитата:
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
body{
background-color:#66FF99;
color:#000099;
font-family:"Courier New",Courier,monospace;
}
ol{
margin: 0 auto ;
width:200px;
}
.show{
width: 400px;
margin: 10px auto ;
color:#000000;
text-shadow:-2px 2px #D2E0EF;
font-size:18px;
font-family:"Bitter",serif;
line-height:1.4;
}
label{
display:block;
margin:10px;
padding-left:8px;
background:url("http://code.stephenmorley.org/html-and-css/styling-checkboxes-and-radio-buttons/checks.png") no-repeat 0 0;
background-color:#FFCC66;
line-height:24px;
border:#000000 1px solid;
border-radius:15px;
color:#6f8686;
text-shadow:0 0 1px rgba(111,134,134,0.3);
}
label::before{
padding-left:28px;
color:#fff;
content:attr(data-hover);
position:absolute;
opacity:0;
text-shadow:0 0 1px rgba(255,255,255,0.3);
-webkit-transform:scale(1.1) translateX(10px) translateY(-10px) rotate(4deg);
-moz-transform:scale(1.1) translateX(10px) translateY(-10px) rotate(4deg);
transform:scale(1.1) translateX(10px) translateY(-10px) rotate(4deg);
-webkit-transition:-webkit-transform 0.3s,opacity 0.3s;
-moz-transition:-moz-transform 0.3s,opacity 0.3s;
transition:transform 0.3s,opacity 0.3s;
pointer-events:none;
}
label:hover::before,label:focus::before{
-webkit-transform:scale(1) translateX(0px) translateY(0px) rotate(0deg);
-moz-transform:scale(1) translateX(0px) translateY(0px) rotate(0deg);
transform:scale(1) translateX(0px) translateY(0px) rotate(0deg);
opacity:1;
}
label.check{
text-shadow:-2px 2px #346392;
font-size:24px;
color:#fff;
background-position:0 -24px;
}
label.check::before{
content:none;
}
.zero label{
background-color:#CCCCCC;
}
.zero label::after{
content:"?";
}
h2{ font-family:"Bitter",serif;
color: #663300;
text-shadow:-2px 2px #FFCC33;
margin-bottom:4px;
}
.err h2{
text-decoration:underline;
color:#FF0000;
}
.ok h2{
color:#339900;
}
input[type=checkbox],input[type=radio]{
width:28px;
margin:0;
padding:0;
opacity:0;
}
input[type=button]{
display:block;
margin: 10px auto ;
padding:2px 12px;
font-size:24px;
font-family:"Bitter",serif;
line-height:1.4;
appearance:none;
color:#fff;
text-shadow:-2px 2px #346392;
background-color:#A33400;
background-image:linear-gradient(top,#6496c8,#346392);
box-shadow:inset 0 0 0 1px #27496d;
border:none;
border-radius:15px;
}
input[type=button]:focus{
outline:none;
}
input[type=button]:hover{
box-shadow:inset 0 0 0 1px #27496d,0 5px 15px #193047;
}
input[type=button]:active{
box-shadow:inset 0 0 0 1px #27496d,inset 0 5px 30px #193047;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function() {
var questions = {
"Цвет яблок?": {
"Синий": false,
"Сиреневый": false,
"Жёлтый": true,
"Красный": true,
"Зелёный": true
},
"Цвет угля?": {
"Синий": false,
"Чёрный": true,
"Жёлтый": false,
"Красный": false,
"Зелёный": false
}
},
answers = [],
res = ["НЕДОПУСТИМО!!!", "ХОРОШО!!!", "ОТЛИЧНО!!!"];
var ol = $("<ol/>");
$.each(Object.keys(questions), function(i, el) {
answers[i] = [false, true];
var name = "name"+i, li = $("<li/>", {
on: {
"change": function(event) {
$(this).removeClass("zero")
var box = $("input", this),
ok = true,
choice = true;
box.each(function(indx, element) {
element.parentNode.className = element.checked ? "check" : "";
element.checked && (choice = false);
element.checked != element.value && (ok = false);
});
answers[i] = [ok, choice];
}
}
}).appendTo(ol);
$("<h2/>", {
text: el
}).appendTo(li);
var items = Object.keys(questions[el]);
var tipe = "radio", sum = 0 ;
$.each(items, function(indx, item){
questions[el][item] && sum++;
sum == 2 && (tipe = "checkbox")
});
$.each(items, function(i, item) {
$("<label/>", {"attr" : {"data-hover" : item}}).append(
$("<input/>", {
"type": tipe,
"class": "myclass",
"name" : name,
"val": +questions[el][item]
})
).append(item).appendTo(li);
});
});
$("body").prepend(ol);
$(".reset").on("click", function() {
$(":checkbox, :radio").prop({
"checked": false
});
$("li").change().removeClass("err zero ok");
$(".show").html("")
}).click();
$(".test").on("click", function() {
var ok = 0,
mes = "";
$.each(answers, function(indx, el) {
$("li").eq(indx).toggleClass("err", !el[0])
.toggleClass("ok", el[0])
.toggleClass("zero", el[1]);
if (el[0]) ok++;
if (el[1]) {
mes = "Не все задания выполнены."
};
});
if (!mes) mes = "Количество правильных ответов " + ok + "<br>Ваша оценка " + res[ok];
mes += res.length == ++ok ? "" : "<br> Уточните ответы на вопросы отмеченные красным";
$(".show").html(mes)
})
});
</script>
</head>
<body>
<input class="test" name="" type="button" value="Показать результат">
<input class="reset" name="" type="button" value="Сбросить ответы">
<div class="show"></div>
</body>
</html>
|
| Часовой пояс GMT +3, время: 08:47. |