помогите с 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, время: 10:24. |