Помогни ни да направим Uroci.net по - богат! Добави урок

Скрипт за set/unset на всички checkbox-ове в дадена форма

unreal   трудност:    видян: 5636

Джаваскрипт функцията е следната:

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;
}


Примерна форма за използване на функцията:

<form name="form_name" method="post" action="text.php">

<input type="checkbox" name="check" value="0" onClick="SetAllCheckBoxes('form_name', 'test_values[]', this.checked)"><br />

<input type="checkbox" name="test_values[]" value="1" />Test 1 <br />
<input type="checkbox" name="test_values[]" value="2" />Test 2 <br />
<input type="checkbox" name="test_values[]" value="3" />Test 3

</form>



Коментари (2)

MJMP на 18.03 2008 в 17:39ч.
Добре ако name на checkbox-овете са
различни...така както си го показал имам
чувството, че е едно и също името...
Моля да ме поправиш, не разбирам от
JavaScript, но ми се налага да правя
такова маркиране и все още се чудя...
unreal на 29.03 2008 в 14:46ч.
Да, името е едно и също, но забележи, че завършва с [], т.е. получаваш всички checkbox-ове в един масив. После във функцията само минаваш с един цикъл и сетваш новите стойности.

Ако искаш всеки checkbox да ти е с различно име ще трябва малко да промениш кода. Вместо да вземаш целия масив с checkbox-ове във функцията просто ще вземаш всеки отделен checkbox и ще му сетваш новата стойност:


function SetAllCheckBoxes(FormName, CheckValue)
{
if(!document.forms[FormName])
return;

document.forms[FormName].elements['field1'].checked = CheckValue;
document.forms[FormName].elements['field2'].checked = CheckValue;
document.forms[FormName].elements['field3'].checked = CheckValue;
}






Test 1
Test 2
Test 3

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com