Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как выделить нужные checkbox одним кликом? (https://javascript.ru/forum/misc/26513-kak-vydelit-nuzhnye-checkbox-odnim-klikom.html)

MCB 11.03.2012 13:28

Как выделить нужные checkbox одним кликом?
 
Есть массив

<input type="checkbox" name="checkbox[1]" value="11">
<input type="checkbox" name="checkbox[2]" value="22">
<input type="checkbox" name="checkbox[3]" value="33">


<input type="checkbox" name="all" value="">Все

Как сделать, чтобы при нажатии 'Все' помечались именно эти 3 пункта?

Просьба дать код

nikita.mmf 11.03.2012 13:46

Здравствуйте!

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

Задавайте конкретные вопросы по ходу дела.

Вы просите готовый скрипт с нуля.

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.

MCB 11.03.2012 14:15

Да я пробую, не получается, вот что



<form name="form1" method="post" action="">
<input type="checkbox" name="total" value="checkbox" onClick="checkAll(this.form,'checkbox[]',this.checked)">Отметить все

<input type="checkbox" name="checkbox[1]" value="checkbox">1
<input type="checkbox" name="checkbox[2]" value="checkbox">2
<input type="checkbox" name="checkbox[2]" value="checkbox">3
</form>


это я пытался немного переделать скрипт, если просто checkbox[] то работало


<script type="text/javascript">
function checkAll(oForm, cbName, checked)
{
oForm.checkbox[1].checked = checked;
oForm.checkbox[2].checked = checked;
oForm.checkbox[3].checked = checked;
}
</script>

nikita.mmf 11.03.2012 15:07

<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title></title>
	<script type="text/javascript">
	function getForm( elem ) {
		if ( elem.form ) return elem.form;
		var form = elem.parentNode;
		while ( form && form.nodeName.toLowerCase() != 'form' ) {
			form = form.parentNode;
		}
		return (elem.form = form);
	}
	function checkAll( oForm, reName, checked ){
		if ( !oForm ) return;
		var inputList = oForm.getElementsByTagName("input");
		for ( var i = 0, elem; (elem = inputList[i++] ); ) {
			if ( elem.type == 'checkbox' && reName.test( elem.name) ) {
				elem.checked = checked;
			}
		}
	}
	</script>
</head>
<body>
	<form action="">
		<ul>
			<li><input type="checkbox" name="total" onclick="checkAll( this.form || getForm(this), /checkbox\[\d+\]/, this.checked )"> Check(Uncheck) All</li>
			<li><input type="checkbox" name="checkbox[0]"/> 1</li>
			<li><input type="checkbox" name="checkbox[1]"/> 2</li>
			<li><input type="checkbox" name="checkbox[2]"/> 3</li>
			<li><input type="checkbox" name="checkbox[3]"/> 4</li>
			<li><input type="checkbox" name="checkbox[4]"/> 5</li>
		</ul>
	</form>
</body>
</html>

MCB 11.03.2012 16:38

Спасибо, Вы очень помогли!

рони 11.03.2012 17:11

MCB,
Вариант ...
<!DOCTYPE html>
<html>
<head>
  <title></title>
<script type="text/javascript">
function checkAll(oForm,checked)
{
oForm['checkbox[1]'].checked = checked;
oForm['checkbox[2]'].checked = checked;
oForm['checkbox[3]'].checked = checked;
}
</script>
</head>
<body>
<form name="form1" method="post" action="">
<input type="checkbox" name="total" value="checkbox" onClick="checkAll(this.form,this.checked)">Отметить все
<input type="checkbox" name="checkbox[1]" >1
<input type="checkbox" name="checkbox[2]" >2
<input type="checkbox" name="checkbox[3]" >3
</form>
</body>
</html>

MCB 11.03.2012 18:11

рони, спасибо, я все думал, что все не подходит, кучу вариантов испробовал

Pavel M. 11.03.2012 22:27

на jquery красивее
<!DOCTYPE html>
<html>
<head>
<title></title>
<script class="jsbin" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
	$(function () {
		$('input[name="total"]').change(function () {
			$(this).siblings('input').prop('checked', this.checked);      
		});
	});
</script>
</head>
<body>
<form name="form1" method="post" action="">
<input type="checkbox" name="total">Отметить все
<input type="checkbox" name="checkbox[1]" >1
<input type="checkbox" name="checkbox[2]" >2
<input type="checkbox" name="checkbox[3]" >3
</form>
</body>
</html>


Часовой пояс GMT +3, время: 13:30.