расчет возраста с помощью калькулятора плагин / JQuery - PullRequest
0 голосов
/ 21 сентября 2010

У меня есть наборы дат (через входы / выборки - мм / дд / ггг) на странице. Я хочу, чтобы в определенном текстовом поле только для чтения отображался возраст в месяцах (рассчитывается на основе этих двух дат) после изменения определенного поля выбора (другой выбор, а не часть набора дат) (любой параметр в этом выбранном выборе должен вызывать расчет и показывать результат в поле только для чтения). Это должно быть довольно просто, но не работает, буду признателен за любые советы. Это то, что я до сих пор:



    $(document).ready(
    function (){


    // bind the recalc function to the select field
    $("#certain_select").bind("change", recalc);
    // run calculation 
    recalc();


    }
    );


function recalc(){  

var b_day=parseInt($("#dob_dd").value);
var b_mo=parseInt($("#dob_mm").value);
var b_year=parseInt($("#dob_yy").value);


var visit_day=parseInt($("#visit_dd").value);
var visit_mo=parseInt($("#visit_mm").value);
var visit_year=parseInt($("#visit_yy").value);


var age;
if (visit_year==b_year){
age=(visit_mo-b_mo);
$("#showage").text(age.toString());
}else if(b_year<visit_year){
var age_years=(visit_year-b_year);
var age_months=(visit_mo-b_mo);
age=(12*age_years + age_months);
$("#showage").text(age.toString());
}else{
age=0;
$("#showage").text(age.toString());
}



    }//end of recalc function





Ответы [ 2 ]

0 голосов
/ 22 сентября 2010

HTML прост.

<select name="visit_mm" id="visit_mm" class="required">
<option value=""> </option>
<option value="">1</option>...
</select>

<select name="visit_dd" id="visit_dd" class="required">
<option value=""> </option>
<option value="1">1</option>
...
<option value="12">12</option>
</select>

<input type="text" name="visit_yy" id="visit_yy" size="4" maxlength="4" value="" class="required">

... то же самое для полей dob, только разные идентификаторы.

<select name="dob_mm" id="dob_mm" class="required">
<option value=""> </option>
<option value="1">1</option>
...
<option value="12">12</option>
</select>

<select name="dob_dd" id="dob_dd" class="required">
<option value=""> </option>
<option value="1">1</option>
...
<option value="31">31</option>
</select>

<input type="text" name="dob_yy" id="dob_yy" size="4" maxlength="4" value="" class="required">

Поле «Только чтение» выглядит так:

<input type="text" readonly class="readonly" name="delayed_start" id="delayed_start" size="4" maxlength="4" value="">

и есть выборка с id = "рекомендуемый_визит"

<select name="recommended_visit" id="recommended_visit" class="required">
<option value=""> </option>
</select>

Когда значение этого параметра изменяется, в поле только для чтения должен отображаться возраст, рассчитанный с использованием полей для посещений и dob. Убедиться в том, что дата действительна (исходя из того, сколько дней в определенные месяцы, проверяется високосные годы и т. Д.), Вовсе не нужно. подойдет любая дата.

0 голосов
/ 21 сентября 2010

Для начала переключите ваши экземпляры с $("#the_id").value на $("#the_id").val() - по одному для каждого из полей, связанных с датами (6 мест).

Все остальное выглядит так, как будто оно должно работать, но трудно понять, не имея представления о том, что вы подразумеваете под "не работает".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...