Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.07.2012, 20:45
Аспирант
Отправить личное сообщение для V2oD2o Посмотреть профиль Найти все сообщения от V2oD2o
 
Регистрация: 19.01.2011
Сообщений: 59

Элементарная задача..
в пхп динамически вываливается много радио кнопок..

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 можно выцепить порядковый номер радио кнопки?

Последний раз редактировалось V2oD2o, 18.07.2012 в 20:48.
Ответить с цитированием
  #2 (permalink)  
Старый 18.07.2012, 20:52
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от V2oD2o Посмотреть сообщение
в пхп динамически вываливается много радио кнопок..

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);

Последний раз редактировалось lord2kim, 18.07.2012 в 20:55.
Ответить с цитированием
  #3 (permalink)  
Старый 18.07.2012, 20:53
Аспирант
Отправить личное сообщение для V2oD2o Посмотреть профиль Найти все сообщения от V2oD2o
 
Регистрация: 19.01.2011
Сообщений: 59

спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 18.07.2012, 20:57
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

для нормальных браузеров
<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>
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 19.07.2012, 00:08
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Если уж совсем много элементов, можно сделать так, чтобы цикл каждый раз не гонять
<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, 19.07.2012 в 00:13.
Ответить с цитированием
  #6 (permalink)  
Старый 19.07.2012, 17:46
Профессор
Отправить личное сообщение для tadjik1 Посмотреть профиль Найти все сообщения от tadjik1
 
Регистрация: 07.06.2011
Сообщений: 315

bes,
браво, надо показывать правильное решение, а не то, которое похоже не ответ. конечно слушать надо событие, а не гонять в цикле элементы. в ИЕ никогда ончендж не работал, зато онклик работает во всех браузерах, не должно возникнуть проблемы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача такова : нужно при клике на ссылку открыть страницу с новой вкладке, оставаясь asustekk Javascript под браузер 4 25.05.2012 14:04
Интересная задача для javascript bobri4 Общие вопросы Javascript 4 16.07.2011 13:08
помощь новичку - задача вывода содержимого нескольких страниц в одну новую samurau AJAX и COMET 2 03.11.2009 19:07