помогите с CheckBox (времени в обрез)
вот форма
<form action="" method="POST" name="test"> <input type="checkbox" value="1" id="chek1" onclick="checkCheck()" name="var1" />1<br> <input type="checkbox" value="2" id="chek2" onclick="checkCheck()" name="var2" />2<br> <input type="checkbox" value="3" id="chek3" onclick="checkCheck()" name="var3" />3<br> <input type="checkbox" value="4" id="chek4" onclick="checkCheck()" name="var4" />4<br> <input type="checkbox" value="5" id="chek5" onclick="checkCheck()" name="var5" />5<br> <input type="checkbox" value="6" id="chek6" onclick="checkCheck()" name="var6" />6<br> <input type="checkbox" value="7" id="chek7" onclick="checkCheck()" name="var7" />7<br> <input type="checkbox" value="8" id="chek8" onclick="checkCheck()" name="var8" />8<br> <input type="checkbox" value="9" id="chek9" onclick="checkCheck()" name="var9" />9<br> <input type="checkbox" value="10" id="chek10" onclick="checkCheck()" name="var10" />10<br> <input type="submit" value="Проголосовать" name="opros" /><br> </form> задание очень простое, но в силу слабого знания javascript решить быстро не могу, а время поджимает: необходимо дать пользователю выбрать только один или два чексбокса |
полностью готовое решения я вам не дам, по той причине, что форум нужен для помощи,а не полного решения за вас проблемы.
Что вам понадобится из знаний: 1) <input type="checkbox" value="1" id="chek1" onclick="checkCheck(this)" name="var1" />1<br> таким образом, мы получим в ф-ции checkCheck первым параметром ссылку на измененый чекбокс 2) Если мы объявим вне этой ф-ции, переменную то она также будет внутри видна. таким образом мы сможем ее использовать как счетчик выбранных чекбоксов, прибаляя единицу, когда был включен чекбокс, и удаляя еденицу, когда снимается 3) тот факт, что чекбокс был выбран, определяется его свойством checked аналогично его можно снять, если мы третий пытаемся сделать. Из даного материала у вас должно поулчится сделать полный сркипт |
(function () { var nodes = document.test.getElementsByTagName('input'); for (var i = 0; i < nodes.length; i++) { if (nodes[i].type == 'checkbox') { nodes[i].onclick = function (e) { e = e || window.event; if ((function () { var x = 0; for (var z = 0; z < nodes.length; z++) { if (nodes[z].checked) { x++; } } return x; })() > 2) { e.preventDefault(), e.returnValue = false; } } } } })(); |
exec,
это не раздел о jQuery |
вот решение, все таки сделал ))) если кому не понятно, пишите на мой блог
<script language="javascript"> <!-- var check = 0; var kolvo = 10; // количество чекбоксов в нашей форме function checkCheck(elem) { // если ставим галочку +1, если убираем галочку с чекбокса -1 if (elem.checked) { check += 1; } else { check -= 1; } if (check == '2') // чек больше или равен 2, надо дизаблить все НЕ отмеченные!! { for (var i = 1; i <= kolvo; i++) { var my = 'chek'+ i; if (document.getElementById(my).checked == false) { document.getElementById(my).disabled=true; } } } else // чек не равен 2, надо раздизаблить все чекбоксы!! { for (var i = 1; i <= kolvo; i++) { var my = 'chek'+ i; document.getElementById(my).disabled=false; } } } //--> </script> <form action="/" method="POST" name="test"> <input type="checkbox" value="1" id="chek1" onclick="checkCheck(this)" name="var1" />1<br> <input type="checkbox" value="2" id="chek2" onclick="checkCheck(this)" name="var2" />2<br> <input type="checkbox" value="3" id="chek3" onclick="checkCheck(this)" name="var3" />3<br> <input type="checkbox" value="4" id="chek4" onclick="checkCheck(this)" name="var4" />4<br> <input type="checkbox" value="5" id="chek5" onclick="checkCheck(this)" name="var5" />5<br> <input type="checkbox" value="6" id="chek6" onclick="checkCheck(this)" name="var6" />6<br> <input type="checkbox" value="7" id="chek7" onclick="checkCheck(this)" name="var7" />7<br> <input type="checkbox" value="8" id="chek8" onclick="checkCheck(this)" name="var8" />8<br> <input type="checkbox" value="9" id="chek9" onclick="checkCheck(this)" name="var9" />9<br> <input type="checkbox" value="10" id="chek10" onclick="checkCheck(this)" name="var10" />10<br> <input type="submit" value="Проголосовать" name="opros" /><br> </form> |
Часовой пояс GMT +3, время: 19:57. |