Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Greg от 21 Августа 2006, 13:22:41

Название: проверка полей
Отправлено: Greg от 21 Августа 2006, 13:22:41
суть задачи такова:
у меня есть форма в которой существует неизвестное(!) количество элементов checkbox. мне требуется проверить их заполненность ("отмеченность") и в результате выволнить два действия:
1) если ничего не заполнено, вывести предупреждение и прекратить дальнейшее выполнение функции
2) если отмечены все поля, выполнить стандартную функцию print().

проблем не было бы, если бы я точно знал сколько и какие элементы есть в форме.

может кто чем подскажет?
Название: проверка полей
Отправлено: html_coder от 21 Августа 2006, 14:05:03
Greg

а что мешает просто получить все checkboxes, и проверить их в цикле, как только нашёл первый не отмеченный сделать return из функции...
Название: проверка полей
Отправлено: avb от 21 Августа 2006, 14:11:43
Все элементы формы:
document.forms[индекс или "имя формы"].elements
Из них чекбоксами являются те, для которых:
document.forms[индекс или "имя формы"].elements.type=="checkbox"
Если чекбокс отмечен, то:
document.forms[индекс или "имя формы"].elements.checked==true
в противном случае:
document.forms[индекс или "имя формы"].elements.checked==false

Если есть возможность задавать всем чекбоксам одно имя (аттрибут name), то тогда они будут в массиве:
document.forms[индекс или "имя формы"].elements["имя чекбоксов"]
Название: проверка полей
Отправлено: Greg от 21 Августа 2006, 14:22:28
html_coder
avb
я в javascript почти не работаю, поэтому многих функций не помню или просто не знаю.
вот значит так делаем (для проверки все ли чекбоксы отмечены) :
1) в цикле проверяем свойство элемента формы, если чекбокс, то...
1.1) проверяем отмечен/неотмечен он. если отмечен, прибавляем единичку в какуюто переменную

потом эту переменную сравниваем с количеством чекбоксов в форме, если равно, то выполняем оду функцию, если не равно, но не 0, то другую, а если 0, то предупреждаем и выходим.

вот в чем вопрос, как узнать количество элементов, т.е. чекбоксов?
Название: проверка полей
Отправлено: hanslinger от 21 Августа 2006, 14:26:17
var xxx = element.getElementsByTagName(\'input\');
if (xxx.type == \'checkbox\') ...
Я здесь (http://developer.mozilla.org/en/docs/Gecko_DOM_Reference) обычно такие вещи смотрю.
Название: проверка полей
Отправлено: html_coder от 21 Августа 2006, 14:39:00
Greg ну практически всё объяснили, если не понятно, напиши, я тебе тогда разложу по полочкам!
Название: проверка полей
Отправлено: Greg от 21 Августа 2006, 14:39:07
вот сделал так, но что-то не фурычит:



на страничке такая кнопочка

По нажатию кнопки выполняется скрипт, но нужно чтобы сначала проверил.что здесь не так?
Название: проверка полей
Отправлено: avb от 21 Августа 2006, 14:46:21
var checkboxes=0; //кол-во чекбоксов
var checked=0; //кол-во отмеченных чекбоксов

for(i=0; i  if (document.forms[0].elements.type== \'checkbox\'){
    checkboxes ++ ;
    if(document.forms[0].elements.checked) {checked ++;}
  }
}
Название: проверка полей
Отправлено: avb от 21 Августа 2006, 14:49:24
for (var i=0; i
for (var i=0; i
Название: проверка полей
Отправлено: html_coder от 21 Августа 2006, 15:05:03
Да и лучше проверять по событию onSubmit="return CheckIt();"
Название: проверка полей
Отправлено: Greg от 21 Августа 2006, 15:35:14
всем огромное спасибо за помощь!
Название: проверка полей
Отправлено: Greg от 28 Августа 2006, 15:08:42
появился еще один вопрос: есть тэг