Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Помогите найти ошибку в скрипте расчета возраста человека (https://javascript.ru/forum/events/25899-pomogite-najjti-oshibku-v-skripte-rascheta-vozrasta-cheloveka.html)

Romkinss 19.02.2012 13:52

Помогите найти ошибку в скрипте расчета возраста человека
 
Скрипт для расчета возраста человека. Смысл в том, что выбирая переключателями свой пол, переменной POL присваивается значение либо 5 (мужчина) либо 0 (женщина). Не могу понять почему переменной POL значение не присваивается.

<div class="pension_calc">
<form name="pensia">
<p>

Сколько лет до пенсии (пенсия мужчин в 60, женщин 55 лет):
<input name="LDP" onKeyUp="UpdateF(1)" maxlength="2"><br>


Твой пол:
<input type="radio" name="POL" value="5" checked> Мужчина
<input type="radio" name="POL" value="0"> Женщина <hr>

Твой возраст:
<input name="OLD" maxlength="12" onKeyUp="UpdateF(6)">


</p>
</form>


<script language="javascript">
<!--

function UpdateF(n)
{

var a = window.document.pensia.LDP;
var b = window.document.pensia.OLD;
var c = window.document.pensia.POL;
{
b.value = (55 + eval(c.value) - eval(c.value));
};

}
-->
</script>
</p>
</div>

melky 19.02.2012 23:40

потому что window.document.pensia.OLD содержит 2 элемента, у Вас же 2 поля на странице? (это не вопрос).

можно обойти все поля с таким именем, выбрать выделенное и прочитать его значение.
<script>
function getValueForName(NAME){

     var a = document.getElementsByName(NAME),
          i = 0;

     while(i in a) 
          if(a[i].checked) 
               return a[i].value; 
          else 
               i += 1;
}
</script>

<input type="radio" name="POL" value="5" checked> Мужчина
<input type="radio" name="POL" value="0"> Женщина <hr>

<button onclick="alert(getValueForName('POL'))">получить значение поля с именем "POL"</button>

т.е. вместо var b = window.document.pensia.OLD у Вас должно быть что-либо другое.

Romkinss 20.02.2012 15:58

melky,
Можете написать в личку свою электронку? Есть вопрос за небольшое вознаграждение.


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