尝试从一个表单验证年龄我在chrome的控制台上发现了这个问题。 这是我的代码:
<script type="text/javascript">
function CalAge() {
var dd = $("#day").val();
var mm = $("#month").val();
var yy = $("#year").val();
var age = 18;
var mydate = new Date();
mydate.setFullYear(yy, mm-1, dd);
var currdate = new Date();
currdate.setFullYear(currdate.getFullYear() - age);
if(dd !=0 || mm !=0 || yy !=0){ //whether one or all values havent been choosen
if ((currdate - mydate) < 18){
window.location = "http://www.google.com";
}
else{
alert("more than 18");
}
}
else{
alert("please register");
}
}
</script>
我想知道是否与我的代码有关,因为如果我把url重定位放在代码中的其他地方(比如在条件之上)它就可以了。 任何建议
答案 0 :(得分:0)
这是因为if ((currdate - mydate) < 18)
没有评估为真。
在您的示例中,currdate
是18岁的截止日期。你的病情应该是:
if (currdate < mydate) { ... }
也就是说,如果有人在截止日期之后出生(即,年龄小于18岁),则重定向到Google。
答案 1 :(得分:-1)
这是对错误的一个很好的解释......我认为你必须用window.location
取代window.location.assign("http://www.google.com")
,并且只使用一个else
来提醒所有人弹出窗口!如果可选......祝你好运!
Oookay!用这个:
`
function CalAge(){
var dd = $("#day").val();
var mm = $("#month").val();
var yy = $("#year").val();
var age = 18;
var mydate = new Date();
mydate.setFullYear(yy, mm-1, dd);
var currdate = new Date();
currdate.setFullYear(currdate.getFullYear() - age);
if(dd !=0 || mm !=0 || yy !=0){ //whether one or all values havent been choosen
var subit = currdate - mydate;
if (subit < 18){
window.location.href = "http://www.google.com";
}
else{
alert("more than 18");
}
}
else{
alert("please register");
}
}
</script>`
thanks good luck