Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Получение значений массивом с checkbox'ов, с одинаковым именем (https://javascript.ru/forum/dom-window/7943-poluchenie-znachenijj-massivom-s-checkbox%27ov-s-odinakovym-imenem.html)

vvsh 27.02.2010 20:17

Получение значений массивом с checkbox'ов, с одинаковым именем
 
Здравствуйте, у меня есть в форме выбор категорий, к котором можно выбирать сразу несколько, мне надо получить массив всех категорий, и отобрать из них выбранные, как сделать?
заранее спасибо

JsLoveR 28.02.2010 06:11

vvsh,
можно проверять по value элементов, пример: если элемент выбран - добавить value в массив или просто выбрать элемент и при клике показать его value. Да можно как угодно сделать. А вообще покажите Ваши наработки и я Вам сделаю.

Как пример:

function res()
{
var p=1;
 var All=document.forms['formSum'];
for(var i = 0; i < All.elements.length; ++i) {
	if(All.elements[i].checked){
	p=All.elements[i].value;
	 alert("Вы выбрали: "+p);
       
 }
}
}


<form name="formSum">
<b>Купить где?:</b><br/>
<input type="radio" name="q" value="супермаркет"/>супермаркет
<br/>
<input type="radio" name="q" value="рынок"/>рынок
<br/>
<b>Помидоры:</b><br/>
<input type="checkbox" value="10 грн"/>10 грн.
<br/>
<input type="checkbox" value="11 грн" />11 грн.
<br/>
<input type="checkbox" value="12 грн"/>12 грн.
<br/>
<b>Огурцы:</b>
<br/>
<input type="checkbox" value="15 грн"/>15 грн.
<br/>
<input type="checkbox" value="18 грн"/>18 грн.
<br/>
<input type="button" value="Выбрать" onclick="res()"/>
</form>

vvsh 28.02.2010 12:26

у меня checkbox'ы с name, <input type="checkbox" name="filter1" value="52"><input type="checkbox" name="filter1" value="53"> и т.д.
то есть надо не все, а только с атрибутом name равным filter1

JsLoveR 28.02.2010 15:25

vvsh,

Вот:

function res()
{
var p=1;
 var All=document.forms['formSum'];
for(var i = 0; i < All.elements.length; ++i) {
	if(All.filter1[i].checked){
	p=All.filter1[i].value;
	 alert("Вы выбрали: "+p);
       
 }
}
}

<form name="formSum">

<b>Помидоры:</b><br/>
<input type="checkbox" value="10 грн" name="filter1"/>10 грн.
<br/>
<input type="checkbox" value="11 грн" name="filter1" />11 грн.
<br/>
<input type="checkbox" value="12 грн" name="filter1"/>12 грн.
<br/>
<input type="checkbox" value="15 грн" name="filter1"/>15 грн.
<br/>
<input type="checkbox" value="18 грн" name="filter1"/>18 грн.
<br/>
<input type="button" value="Выбрать" onclick="res()"/>
</form>

vvsh 28.02.2010 22:53

Спасибо, подумал еще, и сделал так
у формы onsubmit="res(this)"

и js
function res(form) {
var all = form.filter1;

for(i=0;i<all.length;i++) {
if(all[i].checked==true){
alert("Вы выбрали: "+all[i].value);
}
}
}


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