我的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键时,年龄应显示在其字段中。 放下你的想法和建议。
答案 0 :(得分: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);
} 如果当前月份低于出生月份或等于和当前日期比出生日期少,那么我将减少年值
答案 1 :(得分: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>
答案 2 :(得分: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>
答案 3 :(得分:0)
您可以使用unBlur()
功能,当您控制从文本框中保留焦点时,应调用JavaScript方法。
像这样: -
<input type="text" name="age" onblur="ageCount()"/>
现在,在JavaScript中,您可以计算年龄和显示。
<script type="text/javascript">
// Your ageCount() for calculate AGE and display AGE
</script>