Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   значения отмеченных флажков (https://javascript.ru/forum/misc/32701-znacheniya-otmechennykh-flazhkov.html)

Sveta 26.10.2012 10:59

значения отмеченных флажков
 
Здравствуйте!
Есть код html
<div id = 'flags'>
		<p><input type="checkbox" id="fl" value="Rendering engine">Rendering engine</p>
		<p><input type="checkbox" id="fl" value="Browser">Browser</p>
		<p><input type="checkbox" id="fl" value="Platform(s)">Platform(s)</p>
		<p><input type="checkbox" id="fl" value="Engine version">Engine version</p>
		<p><input type="checkbox" id="fl" value="CSS grade">CSS grade</p>
	</div>


мне необходимо получить значения отмеченных флажков
для начала пытаюсь просто получить значения всех флажков:
var msg = "";
		$('#fl').each(function () {
			 msg += "Значение: " + this.value + "";
			
		});
		alert(msg);

но данный код выводит мне значение только первого флажка, подскажите,пожалуйста, почему так?

Sveta 26.10.2012 11:07

УРА!!!! Все оказалось просто!!:dance:
var msg = "";
		$("#flags input[id='fl']:checked").each(function () {
			 msg += "Значение: " + this.value + "";	
		});
		alert(msg);

Ура!Ура!Ура!

lord2kim 26.10.2012 11:10

Sveta, id у всех должен быть разный, т.к. это уникальный идентификатор...
<div id = 'flags'>
        <p><input type="checkbox" id="f1" value="Rendering engine">Rendering engine</p>
        <p><input type="checkbox" id="f2" value="Browser">Browser</p>
        <p><input type="checkbox" id="f3" value="Platform(s)">Platform(s)</p>
        <p><input type="checkbox" id="f4" value="Engine version">Engine version</p>
        <p><input type="checkbox" id="f5" value="CSS grade">CSS grade</p>
    </div>
<input type="button" value="click" onClick="checks()">
<script>
function checks() {
var cbx = document.getElementById("flags").getElementsByTagName("input"), mas = [];
for (i=0; i < cbx.length; i++) {
    if (cbx[i].type == "checkbox" && cbx[i].checked) {
        mas.push(cbx[i].value);
    }
}
alert(mas);
}
</script>

Sveta 26.10.2012 11:18

дааа..вобще вы правы...id должен быть разный...сейчас разбираюсь с вашим кодом, почему-то алерт не вызывается...

lord2kim 26.10.2012 11:21

Sveta, все работает...но проверьте консоль на всякий случай...

Sveta 26.10.2012 11:28

Да-да!! Все работает)) это я с вызовом checks() не разобралась)
Спасибо большое!

Sveta 26.10.2012 11:34

Ой-ой-ой!!! Только как сделать так, чтобы значения выбранных флажков выводилось одной строкой? а то я так понимаю mas это массив...а мне строка нужна...

Sveta 26.10.2012 11:44

Разобралась) чтобы была строка код такой:
function checks() { 
		var cbx = document.getElementById("flags").getElementsByTagName("input"), msg= "";
			for (i=0; i < cbx.length; i++) {
				if (cbx[i].type == "checkbox" && cbx[i].checked) {		
					msg += "" + cbx[i].value +"" ;	
				}
			}
			alert(msg);	
	}

:write:

a_l 26.10.2012 20:33

Цитата:

msg += "" + cbx[i].value +"" ;
Смысл в кавычках?

nerv_ 27.10.2012 02:26

<div>
    <p><input type="checkbox" value="Rendering engine">Rendering engine</p>
    <p><input type="checkbox" value="Browser">Browser</p>
    <p><input type="checkbox" value="Platform(s)">Platform(s)</p>
    <p><input type="checkbox" value="Engine version">Engine version</p>
    <p><input type="checkbox" value="CSS grade">CSS grade</p>
</div>

<script>

alert(

    Array.prototype.map.call( document.getElementsByTagName( 'input' ), function( input ) {

        return input.value;

    })

);

</script>


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