Shkiper
7.01.2013 - 20:47
Всем привет. Опять понадобилась помощь по "голому" JS. Мне нужно проверить, при нажатии на кнопку, выбрал ли пользователь хоть один чекбокс или нет?
на onsubmit вешаешь обработчик, который в цикле проходит по элементам формы и проверяет у чекбоксов checked
Shkiper
7.01.2013 - 21:58
Я пробовал, не получилось:
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
7.01.2013 - 23:31
Shkiper
у option нет атрибута checked, есть selected
Shkiper
8.01.2013 - 00:19
killer8080 фуф блин у меня голова дымит. Я ваще ничего не понял. Помоги мне плизззз
killer8080
8.01.2013 - 00:21
Shkiper
Тебе нужно определить выбрал ли юзер что то в селекте? Или что?
Shkiper
8.01.2013 - 00:24
Нет, мне нужно проверить, нажал ли пользователь хоть один чекбокс из формы
killer8080
8.01.2013 - 00:29
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
8.01.2013 - 00:33
разумеется вместо document.forms[0] можешь подругому получать ссылку на форму. Если эта функция вешается на onsubmit, лучше передавать её аргументом через this
Shkiper
8.01.2013 - 15:10
killer8080 спасибо большое
Shkiper
8.01.2013 - 15:20
Странно, я сделал так, но не работает:
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("Вы не выбрали сообщение");
}
}
Почему?
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.