Элементарная задача..
в пхп динамически вываливается много радио кнопок..
echo "<input name=radiobox type=radio id=check".$x.">" хочу узнать какая именно нажата..
var check=0;
for (x=0;x<=7;x++) {
if (document.getElementById('check'+x).checked==true) { check=x; }
}
alert(check);
ошибок нет, а алерт не вываливается.. т.е после цикла ничего не выполняется.. + еще же как то по полю name можно выцепить порядковый номер радио кнопки? |
Цитата:
var check = 0;
for (i=0; i < document.getElementsByName("radiobox").length; i++) {
if (document.getElementsByName("radiobox")[i].checked) { check = i; break; }
}
alert(check);
в вашем случае нужно как то так
var check=0;
for (x=0;x<=7;x++) {
if (document.getElementById('check'+x) && document.getElementById('check'+x).checked) { check=x; }
}
alert(check);
|
спасибо!
|
для нормальных браузеров
<input name=radiobox type=radio id=check1>
<input name=radiobox type=radio id=check2 checked="checked">
<input name=radiobox type=radio id=check3>
<script>
alert( document.querySelector( 'input[type=radio]:checked' ).id );
</script>
для старых браузеров ИЕ7 например
<input name=radiobox type=radio id=check1>
<input name=radiobox type=radio id=check2 checked="checked">
<input name=radiobox type=radio id=check3>
<script>
var el, els = document.getElementsByTagName('input');
for( var i = 0; el = els[ i++ ]; ) {
if ( el.type == "radio" && el.checked ) {
break;
}
}
alert( el && el.id );
</script>
|
Если уж совсем много элементов, можно сделать так, чтобы цикл каждый раз не гонять
<div id="div">
<input name=radiobox type=radio id=check1>
<input name=radiobox type=radio id=check2 checked="checked">
<input name=radiobox type=radio id=check3>
</div>
<script>
window.onload = function () {
var check = 'check2';
var div = document.getElementById('div');
div.onchange = function (e) {
e = e || event;
var target = e.target || e.srcElement;
check = target.id;
alert(check)
}
}
</script>
В IE onchange чёт не тянет, тогда onclick |
bes,
браво, надо показывать правильное решение, а не то, которое похоже не ответ. конечно слушать надо событие, а не гонять в цикле элементы. в ИЕ никогда ончендж не работал, зато онклик работает во всех браузерах, не должно возникнуть проблемы. |
| Часовой пояс GMT +3, время: 07:15. |