<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; JS: чекбоксы и массив]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5452&amp;type=atom" />
	<updated>2011-02-04T03:52:37Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5452</id>
		<entry>
			<title type="html"><![CDATA[Re: JS: чекбоксы и массив]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44819#p44819" />
			<content type="html"><![CDATA[<p>Хотел в массив значения отмеченных чекбоксов в группе формы занести, для дальнейшей работы с ними...<br />Понял. Доступ к элементу коллекции..и... все будет ок.</p>]]></content>
			<author>
				<name><![CDATA[stir]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26486</uri>
			</author>
			<updated>2011-02-04T03:52:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44819#p44819</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: чекбоксы и массив]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44787#p44787" />
			<content type="html"><![CDATA[<p>list - коллекция, не массив. Хотя коллекции имеют &quot;интерфейс&quot;, сходный с массивами, но сходство на этом и заканчивается. Вам зачем список элементов нужен? Чтобы алертом выводить или что то полезное делать с его элементами?</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2011-02-03T11:23:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44787#p44787</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: чекбоксы и массив]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44783#p44783" />
			<content type="html"><![CDATA[<p>при выводе list&nbsp; так:&nbsp; alert(&quot;list= &quot; + list);<br />сообщает, что list = [object]<br />что в 1 варианте, что и во 2..</p><br /><p>может все дело в форме или ее начале, т.е. она единая и ИМЕНОВАННАЯ = selested?</p><div class="codebox"><pre><code>&lt;FORM name=&quot;selested&quot; enctype=text&gt;
&lt;table width=100%&gt;&lt;!-- Таблица выбора --&gt;
&lt;tr width=100%&gt;&lt;!-- Строка 1 --&gt;
    
  &lt;td width=69% valign=top&gt;&lt;!-- Строка 1, колонка 1 --&gt;
  &lt;FIELDSET&gt;
  &lt;LEGEND&gt;Категория по ГОСТ Р21.1101-2009&lt;/LEGEND&gt;
  &lt;input type=&quot;checkbox&quot;
       name=&quot;total&quot;
     value=&quot;checkbox&quot; onClick=&quot;checkAll(this.form,&#039;category&#039;,this.checked)&quot;&gt;&lt;b&gt;Отметить все&lt;/b&gt;&lt;br&gt;
  &lt;INPUT name=category
         type=&quot;checkbox&quot;
         value=&quot;AWW&quot; tabindex=&quot;1&quot;&gt;А&amp;nbsp;-&amp;nbsp;Автоматизация&lt;br&gt;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[stir]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26486</uri>
			</author>
			<updated>2011-02-03T10:41:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44783#p44783</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: чекбоксы и массив]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44778#p44778" />
			<content type="html"><![CDATA[<p>Вы так много пишете слов, что становится сложно понять суть. Возможно Вы хотели этого:<br /></p><div class="codebox"><pre><code>// собрать коллекцию ВСЕХ html-элементов, у каторых атрибут name=category
var list = document.getElementsByName(&#039;category&#039;);</code></pre></div><p>если атрибут name=cateogry выставлен только у input type=checkbox, то в переменной list - искомое. Если из этой коллекции надо выбрать определенные элементы, то надо пройтись циклом и отфильтровать нужное, например:<br /></p><div class="codebox"><pre><code>// Выбрать все элементы с выставленными флажками
var result = [];
for (var i = 0; i &lt; list.length; i++) {
    if ( list[i].checked ) {
        result.push(list[i]);
    }
}</code></pre></div><p>Если критериев отбора несколько, можно создать несколько отдельных функций, можно все сделать в одной.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2011-02-03T10:01:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44778#p44778</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: чекбоксы и массив]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44767#p44767" />
			<content type="html"><![CDATA[<p>Я улучшил создаваемый массив введя j вместо loadding, иначе он содержал пустые ячейки неотмеченных чекбоксов до последнего отмеченного, <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />..</p><div class="codebox"><pre><code>//блок чтения-записи чекбоксов category в массив
var stopped=j=0;  tota=selested[&quot;category&quot;].length ;
for (i=0; i&lt;tota; i++)
{
   if(selested.category[i].checked==false){++stopped;}
   else{xcategory[j] = (document.forms[&quot;selested&quot;].category[i].value); ++j;}
}
xnkmassiv = xcategory.length;
//alert(&quot;loadding= &quot;+j +&quot; stopped= &quot;+stopped+&#039; всего = &#039;+tota+&quot; ячеек в массиве= &quot;+xnkmassiv+&quot; данные: &quot;+xcategory);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[stir]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26486</uri>
			</author>
			<updated>2011-02-03T04:31:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44767#p44767</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: чекбоксы и массив]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44766#p44766" />
			<content type="html"><![CDATA[<p>Нет. Такая функция уже есть у меня, она в data3.js лежит...<br />Чекбоксы я привел так..на всякий случай, если вопросы возникнут. С ними проблемм нет, а вот с функцией -есть, не пишется рабочая, блин (знаний и опыта нехватает пока)..<br />Ну ведь глупо повторять один и тот же код &quot;блок чтения чекбоксов в массив (с циклом)&quot; в странице! или нет, не глупо?<br />Хотел заменить этот повторяющийся код на функцию uuu(&quot;category&quot;, category, xcategory), нерабочий код которой я привел здесь..<br />Впрос тот же - что я напутал и что надо сделать, чтобы функция заработала...</p><p>Пояснения к переменным нужны? stopped - кол-во неотмеченных чекбоксов (пропущенных эл. в массиве), loadding - -&quot;- отмеченные, tota - размер массива с чекбоксами, xcategory или подобный массив - для хранения выбранных чекбоксов (нужно далее для осуществления поиска с помощью регвыр.), xnkmassiv и xn1massiv - для проверки условия выбора хотя бы 1 чекбокса в массиве чекбоксов (прим. в конце перебора всех массивов). Я с радостью мог бы выслать весь свой код, но &quot;аси&quot; у вас нет, да и на сообщение мое к вам через форму форума я ответ не получил..я все понимаю...<br />просто, чтоб мне не киснуть, а продуктивно изучить этот скрипт нужны советы при исполнении кода, т.е. практики, а обратиться не к кому, никто из знакомых с js не дружит. Эээх..б, это платное образование, поступил бы в свое время на ИИТ, а не АПХП АлтГТУ, или вообще в НЭТИ Новосибирска, и не задавал бы глупых вопросов при самообразовании..еще в школе учился в спецклассе с углубленными предметами (1991г.) - математикой и физикой + информатика, первый выпуск <img src="//forum.script-coding.com/img/smilies/cool.png" width="15" height="15" />, в инстит-те вышку знал на отлично..</p><p>ОФФ: хочу личное общение через скайп или асю с вами + есть 1 идея, это возможно в свободное время??</p><p>Вот одна из функций (повторяющейся у меня в разных страницах), помещенная в data3.js <br /></p><div class="codebox"><pre><code>// функция выбора всех  checkbox-ов в форме
function checkAll(oForm, cbName, checked)
{
for (var i=0; i &lt; oForm[cbName].length; i++) oForm[cbName][i].checked = checked;
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[stir]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26486</uri>
			</author>
			<updated>2011-02-03T02:36:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44766#p44766</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: чекбоксы и массив]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44728#p44728" />
			<content type="html"><![CDATA[<p>Ох... Ну и описание у Вас. <br />Правильно ли я понял, что Вам нужен глобальный checkbox, выставленный флажок которого будет выставлять/снимать флажок на всех остальных?</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2011-02-02T10:48:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44728#p44728</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[JS: чекбоксы и массив]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44710#p44710" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>//блок чтения-записи чекбоксов category в массив
var stopped=loadding=0;  tota=selested[&quot;category&quot;].length ;
for (i=0; i&lt;tota; i++)
{
   if(selested.category[i].checked==false){++stopped;}
   else{xcategory[i] = (document.forms[&quot;selested&quot;].category[i].value); ++loadding;}
}
xnkmassiv = xcategory.length;
alert(&quot;loadding= &quot;+loadding+&quot; stopped= &quot;+stopped+&#039; всего = &#039;+tota+&quot; ячеек в массиве= &quot;+xnkmassiv+&quot; данные: &quot;+xcategory);

//блок чтения-записи чекбоксов zeh в массив
var stopped=loadding=0;  tota=selested[&quot;zeh&quot;].length ;
for (i=0; i&lt;tota; i++)
{
   if(selested.zeh[i].checked==false){++stopped;}
   else{xzeh[i] = (document.forms[&quot;selested&quot;].zeh[i].value); ++loadding;}
}
xn1massiv= xzeh.length;
alert(&quot;loadding= &quot;+loadding+&quot; stopped= &quot;+stopped+&#039; всего = &#039;+tota+&quot; ячеек в массиве= &quot;+xn1massiv+&quot; данные: &quot;+xzeh);</code></pre></div><p>Если тупо сделать как я привел ниже, то создать нормальнодействующую функцию не удается, а вызов этой функции происходит около 30 раз.. </p><div class="codebox"><pre><code>//проба
uuu(&quot;category&quot;, category, xcategory); //вызов функции

function uuu(a, b, c) {
b11= c11=new Array();
b11=b; c11=c;
var stopped=loadding=0;  tota=selested[a].length ;
for (i=0; i&lt;tota; i++)
{
   if(selested.b11[i].checked==false){++stopped;}
   else{c11[i] = (document.forms[&quot;selested&quot;].c11[i].value); ++loadding;}
}
xnkmassiv = c11.length;
alert(&quot;loadding= &quot;+loadding+&quot; stopped= &quot;+stopped+&#039; всего = &#039;+tota+&quot; ячеек в массиве= &quot;+xnkmassiv+&quot; данные: &quot;+c11);
}//конец пробы</code></pre></div><p>На экране сообщение = category- определение отсутствует.<br />Подскажите, пожалуйста, в чем моя ошибка, как переопределить имена массивов...</p><p>Чекбоксы сделаны так:<br /></p><div class="codebox"><pre><code>  &lt;input type=&quot;checkbox&quot;
       name=&quot;total&quot;
     value=&quot;checkbox&quot; onClick=&quot;checkAll(this.form,&#039;category&#039;,this.checked)&quot;&gt;&lt;b&gt;Отметить все&lt;/b&gt;&lt;br&gt;
  &lt;INPUT name=category
         type=&quot;checkbox&quot;
         value=&quot;AWW&quot; tabindex=&quot;1&quot;&gt;А&amp;nbsp;-&amp;nbsp;Автоматизация&lt;br&gt;
  &lt;INPUT name=category
         type=&quot;checkbox&quot;
         value=&quot;ARW&quot; tabindex=&quot;2&quot;&gt;АР&amp;nbsp;-&amp;nbsp;Архитектурные&amp;nbsp;решения&lt;br&gt;
  &lt;INPUT name=category
         type=&quot;checkbox&quot;
         value=&quot;ASW&quot; tabindex=&quot;3&quot;&gt;АС&amp;nbsp;-&amp;nbsp;Архитектурно-стоительные&amp;nbsp;решения&lt;br&gt;

...</code></pre></div>]]></content>
			<author>
				<name><![CDATA[stir]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26486</uri>
			</author>
			<updated>2011-02-02T02:45:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44710#p44710</id>
		</entry>
</feed>
