Как выделить все чекбоксы на странице?

Статус
В этой теме нельзя размещать новые ответы.

toxass

Постоялец
Регистрация
24 Июл 2007
Сообщения
114
Реакции
15
Есть страница подтверждения с около 100 чекбоксов, как возможно отметить эти чекбоксы? Видел раньше код на JS (нужно было исполнить этот код на странице с чекбоксами), который это делал, но сейчас не могу его найти…
 
PHP:
function SetAllCheckBoxes(FormName, FieldName, CheckValue)
{
	if(!document.forms[FormName])
		return;
	var objCheckBoxes = document.forms[FormName].elements[FieldName];
	if(!objCheckBoxes)
		return;
	var countCheckBoxes = objCheckBoxes.length;
	if(!countCheckBoxes)
		objCheckBoxes.checked = CheckValue;
	else
		// set the check value for all check boxes
		for(var i = 0; i < countCheckBoxes; i++)
			objCheckBoxes[i].checked = CheckValue;
}

первая ссылка в гугле - js checkbox check all
 
PHP:
function SetAllCheckBoxes(FormName, FieldName, CheckValue)
{
	if(!document.forms[FormName])
		return;
	var objCheckBoxes = document.forms[FormName].elements[FieldName];
	if(!objCheckBoxes)
		return;
	var countCheckBoxes = objCheckBoxes.length;
	if(!countCheckBoxes)
		objCheckBoxes.checked = CheckValue;
	else
		// set the check value for all check boxes
		for(var i = 0; i < countCheckBoxes; i++)
			objCheckBoxes[i].checked = CheckValue;
}
первая ссылка в гугле - js checkbox check all

этот код выделит чекбоксы только в пределах одной формы. если нужно выделять вообще все боксы на странице, лучше выдать им идентификаторы со сквозной нумерацией и потом в цикле при помощи getElementById выставлять им чек
 
Если не стоит JQuery, то попробуй так.
Код:
function checkAllBoxes(checked)
{
	if (!checked)
		checked = '+';
	for(var FormName in document.forms)
	{
		for(var j in document.forms[FormName].elements)
		if (document.forms[FormName].elements[j].type && document.forms[FormName].elements[j].type == 'checkbox')
		{
			switch(checked)
			{
				case '-':
					document.forms[FormName].elements[j].checked = false;
					break;
				case '+':
					document.forms[FormName].elements[j].checked = true;
					break;
				case '*':
					document.forms[FormName].elements[j].checked = 1 - document.forms[FormName].elements[j].checked;
					break;
			}
		}
	}
}
checkAllBoxes('-'); снять отметки
checkAllBoxes('+'); поставить отметки
checkAllBoxes('*'); инвертировать отметки
Код проверялся в ФФ.
 
Так же если пригодиться, надо будет вручную, в roboform есть такая функция, нажимаешь "отметить все поля" и все чебоксы и радиобоксы (на одном значении) отмечаются
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху