[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отметил ли пользователь хоть один чекбокс?
Страницы: 1, 2, 3
Shkiper
Всем привет. Опять понадобилась помощь по "голому" JS. Мне нужно проверить, при нажатии на кнопку, выбрал ли пользователь хоть один чекбокс или нет?
kaww
на onsubmit вешаешь обработчик, который в цикле проходит по элементам формы и проверяет у чекбоксов checked
Shkiper
Я пробовал, не получилось:
     var select = document.getElementById('type_handler');
var checkeds = 1;
for(var i = 0; i < select.options.length; i++)
{
if(select.options[i].checked)
{
checkeds++;
}
}


if(checkeds != select.options.length)
{
event = event || window.event

if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
alert("Вы не выбрали сообщение");

}
killer8080
Shkiper
у option нет атрибута checked, есть selected
Shkiper
killer8080 фуф блин у меня голова дымит. Я ваще ничего не понял. Помоги мне плизззз smile.gif
killer8080
Shkiper
Тебе нужно определить выбрал ли юзер что то в селекте? Или что?
Shkiper
Нет, мне нужно проверить, нажал ли пользователь хоть один чекбокс из формы
killer8080
function is_shecked(){
var form = document.forms[0];
for(var i = 0, el; i < from.elements.length; i++){
el = form.elements[i];
if(el.type && el.type == 'checkbox' && el.checked)
return true;
}
return false;
}
killer8080
разумеется вместо document.forms[0] можешь подругому получать ссылку на форму. Если эта функция вешается на onsubmit, лучше передавать её аргументом через this
Shkiper
killer8080 спасибо большое smile.gif
Shkiper
Странно, я сделал так, но не работает:
 function click (event)
{
var form = event;
var errors = new array();
var checkboxes = 0;

for(var i = 0, el; i < from.elements.length; i++)
{
el = form.elements[i];
if(el.type && el.type == 'checkbox')
{
checkboxes++;
}

if(el.type && el.type == 'checkbox' && el.checked == false)
{
errors[i] = true;
}

}


if(errors.length != checkboxes)
{
event = event || window.event

if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
alert("Вы не выбрали сообщение");
}

}

Почему?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.