我知道我必须在这里遗漏一些简单的东西,但我会喜欢一些帮助。
首先,HTML:
<input type="text" name="dob" />
<input id="age" type="text" name="age" />
和Javascript
$('input[name=dob]').change(getAge);
$('input[name=age]').change(getAge);
function getAge() {
var today = new Date();
var birthDate = new Date($('input[name=dob]').val());
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
$('#age').val(age);
};
这对我不起作用。当我在“dob”字段中输入日期时,“age”字段返回NaN。
答案 0 :(得分:0)
我假设你没有得到正确的年龄(或任何数字回报)。一些建议:
您在代码块的末尾悬挂一条引号。 删除它,因为它可能导致未被捕获的错误。
您似乎没有强制执行或验证“dob”输入的任何格式。 Date对象仅采用特定类型的输入。找出您想要的内容然后执行它(在使用之前向用户发送消息并进行检查)。
在“if”语句的第二部分,使用括号确保它正在检查您想要的内容。我相信你写它的方式导致了这个检查:( (m === 0) && today.getDate() ) < birthDate.getDate()
。试试这个:(m === 0) && ( today.getDate() < birthDate.getDate() )
。我希望有所帮助。