0

我的jsp代码如下:(一个简单的从字段注册)

 <label>DOB</label></td><td><input type="text" name="dob" /> </td></tr>
 <tr><td>
 <label>AGE</label></td><td><input type="text" name="age" onclick =" ageCount()"/> </td></tr>
 <tr><td>
 <label>GENDER</label></td><td><input type="radio" name="gender" value="Male"/>Male<input    
  type="radio" name="gender" value="Female">Female</td></tr>
 <tr><td>

我在 JS 中使用了一个函数从 dob 计算年龄!Dob 是 sql 日期格式。

<script type="text/javascript">
function ageCount(){
var date1 = new date();
var dob = document.getElementById("dob").value;
var date2 = new date(dob);
var pattern = /^\d{1,2}\/\d{1,2}\/\d{4}$/; 
if(pattern.test(dob)){
    var y1 = date1.getFullYear();
    var y2 = date2.getFullYear();
    var age = y1-y2;
    document.write("Age :" +age);
    return true;
}else{
    alert("invalid date fromat.!! Please enter in (DD/MM/YYYY) format");
    return false;
}
     }


     </script>

我如何使用它,以便当我输入 dob 并按 tab 时,年龄应显示在其字段中。提出您的想法和建议。

4

4 回答 4

1
<input type="text" name="dob" onBlur="getAge(this.value)"/>
<input type="text" name="age" id="ageId"/>

function getAge(birthDate){

  var birthDate= new Date(birthDate);
   var  currentDate= new Date();

    var years = (otherDate.getFullYear() - birthDate.getFullYear());

    if (currentDate.getMonth() < birthDate.getMonth() || 
        currentDate.getMonth() == birthDate.getMonth() && currentDate.getDate() < birthDate.getDate()) {
        years--;
    }
$('#ageId').val(years);

如果当前月份小于出生月份或等于并且当前日期小于出生日期,我正在减少年份值

于 2013-05-14T07:04:00.787 回答
1

嘿伙计们,感谢您花时间解决我的问题!!

我自己解决了这个问题,在这里和那里进行了一些更改。

修改后的代码:(如果需要可能会帮助其他人)

<script type="text/javascript">
function ageCount() {
    var date1 = new Date();
    var dob = document.getElementById("dob").value;
    var date2 = new Date(dob);
    var pattern = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
    //Regex to validate date format (dd/mm/yyyy)       
    if (pattern.test(dob)) {
        var y1 = date1.getFullYear();
        //getting current year            
        var y2 = date2.getFullYear();
        //getting dob year            
        var age = y1 - y2;
        //calculating age                       
        document.getElementById("ageId").value = age;
        doucment.getElementById("ageId").focus ();
        return true;
    } else {
        alert("Invalid date format. Please Input in (dd/mm/yyyy) format!");
        return false;
    }

}

<tr>
                    <td><label>DOB</label></td>
                    <td><input type="text" name="dob" id="dob"
                        onblur="ageCount()" /></td>
                </tr>
                <tr>
                    <td><label>AGE</label></td>
                    <td><input type="text" name="age" id="ageId" /></td>
                </tr>
于 2013-05-14T09:31:34.423 回答
1

尝试这个

<script type="text/javascript">
function ageCount() {
var today = new Date();
var date1 = document.getElementById("dob").value;
var dob = new Date(date1);  
var month = dob.getMonth();
    var day = dob.getDate();  
    var age = today.getFullYear() - dob.getFullYear();
    if (today.getMonth() < month || (today.getMonth() == month && today.getDate() < day))
    {
      age--;
     }                
if(age < 0)
{
alert ("Invalid Date of Birth");    
return false;
}
else
{
    document.getElementById("age").value = age;
    doucment.getElementById("age").focus ();
    alert(age);
    return true;
}
}
</script>    
于 2018-06-07T06:16:39.060 回答
0

您可以使用unBlur()function ,当您控制离开文本框的焦点时,应该调用您的 JavaScript 方法。

像这样 :-

<input type="text" name="age" onblur="ageCount()"/>

现在在您的 JavaScript 中,您可以计算年龄和显示。

<script type="text/javascript">
    // Your ageCount() for calculate AGE and display AGE
</script>
于 2013-05-14T07:16:33.523 回答