Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Получение значения из двух групп radio button (https://javascript.ru/forum/dom-window/23381-poluchenie-znacheniya-iz-dvukh-grupp-radio-button.html)

kristalmen 21.11.2011 20:39

Получение значения из двух групп radio button
 
Добрый вечер! Имеется форма:
<form name="scoreform" id="scoreform">
<p> Вы: </p> <br>
<input type="radio" name='sex' value='m' checked> Мужчина 
<input type="radio" name='sex' value='f'> Женщина
<p> Вы: </p> <br>
<input type="radio" name='smoke' value='s' checked> Курите 
<input type="radio" name='smoke' value='n'> Не курите
<p> Ваш возраст: </p> <br>
<select name="age" id="age">
<option value=65 selected> 65 лет </option>
<option value=60> 60 лет </option>
<option value=55> 55 лет </option>
<option value=50> 50 лет </option>
<option value=40> 40 лет </option>
</select>
<p> Ваше систолическое АД </p> <br>
<select name="pressure" id="pressure">
<option value=0 selected> 180 мм рт.ст. </option>
<option value=1> 160 мм рт.ст. </option>
<option value=2> 140 мм рт.ст. </option>
<option value=3> 120 мм рт.ст. </option>
</select>
<p> Ваш уровень холестерина (ммоль/л) </p> <br>
<select name="cholest" id="cholest">
<option value=0 selected> 4 ммоль/л </option>
<option value=1> 5 ммоль/л </option>
<option value=2> 6 ммоль/л </option>
<option value=3> 7 ммоль/л </option>
<option value=4> 8 ммоль/л </option>
</select>
<br>
<input type="button" value="Посчитать риск!" onclick="scorefunc();"> &nbsp;&nbsp;
<input type="reset" value="Очистить форму">
</form>


Необходимо чтобы после нажатия кнопки "Рассчитать риск!" функция scorefunc() получила значения активных radio button и сохранила их в переменную cloneid.
Я знаю, что для получения значений radio button необходимо пользоваться getElementsByName, однако сценарий не работает. Подскажите в чём я ошибся!

function scorefunc()
 {
  var clonid;
  var elemcoord=1;
  var tableid=new Array();
  var tableids=new Array();
  tabelid=document.scoreform.getElementsByName('sex');
  for (i=0;i<tabelid.length;i++)
   {
    if(tableid[i].checked) {clonid=clonid+tableid[i].value;}
	alert(cloneid);
   }
   tabelids=document.scoreform.getElementsByName('smoke');
   for (i=0;i<tabelid.length;i++)
   {
    if(tableids[i].checked) {clonid=clonid+tableids[i].value;}
	alert(clonid);
   }
 }

ksa 21.11.2011 23:05

Цитата:

Сообщение от kristalmen
Подскажите в чём я ошибся!

Посмотри такой тест...

function scorefunc()
 {
  var clonid;
  var elemcoord=1;
  var tableid=new Array();
  var tableids=new Array();
*!*
  alert(document.getElementsByName('sex').length);
  alert(document.scoreform.getElementsByName('sex').length);
*/!*
  tabelid=document.scoreform.getElementsByName('sex');
  for (i=0;i<tabelid.length;i++)
   {
    if(tableid[i].checked) {clonid=clonid+tableid[i].value;}
	alert(cloneid);
   }
   tabelids=document.scoreform.getElementsByName('smoke');
   for (i=0;i<tabelid.length;i++)
   {
    if(tableids[i].checked) {clonid=clonid+tableids[i].value;}
	alert(clonid);
   }
 }

kristalmen 21.11.2011 23:13

Спасибо!!!Оказывается ошибка была очень тупая: я получал массив в переменную tabelid а в цикле использовал tableid. Ессно ничего работать не будет :lol:


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