2013-05-14 41 views
0

我的JSP代碼如下:(從場簡單的registartion)如何在jsp中輸入dob後自動填充年齡字段?

<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並按下標籤時,年齡應顯示在其字段中。 放下你的想法和建議。

+2

再次'java的!= javascript' – 2013-05-14 07:02:31

+1

由於沒有什麼關於Java我在這裏重新標記這個問題。 – AlexR 2013-05-14 07:03:42

+0

對不起,感謝您的編輯! – ranjani 2013-05-14 07:12:44

回答

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

} 如果當月比出生月份或等於和的currentdate少即是每種不超過出生日期我正在遞減年價值

+0

嗨PSR!感謝您的答覆!我的主要問題是我應該如何在jsp中包含這個JS函數使其工作 – ranjani 2013-05-14 07:09:38

+0

@ranjani如果你有我的解決方案的答案,請接受這個答案 – PSR 2013-05-14 07:10:06

+0

我已經有代碼將dob轉換爲年齡!但主要問題是如何在jsp代碼中進行部署! – ranjani 2013-05-14 07:14:10

0

可以使用unBlur()功能,當你控制離開從文本框的焦點你的JavaScript方法應該被調用。

像這樣: -

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

現在你的JavaScript裏面你可以計算年齡和顯示器。

<script type="text/javascript"> 
    // Your ageCount() for calculate AGE and display AGE 
</script> 
+0

我試過了!但它不工作! – ranjani 2013-05-14 07:24:30

+0

你正在得到什麼錯誤? – 2013-05-14 08:47:40

相關問題