gpt4 book ai didi

javascript - 使用 if..else 语句根据年龄计算分数,脚本仅显示第一个值

转载 作者:行者123 更新时间:2023-11-28 16:24:07 26 4
gpt4 key购买 nike

我希望有 JavaScript 经验的人看一下这个脚本并告诉我我做错了什么,这个脚本的应用可以在 jsfiddle 看到。第一个脚本 showAge() 应该从出生日期获取年龄,然后用结果填充 txt 字段“age”。第二个脚本应该解析“age”字段并检查结果是否匹配任何条件(如 if..else 语句中所示),然后根据 if 填充两个字段(rsltf 和 rsltq)。 .else 语句。但现在它只输出 10 和 16(两个 if..else if 语句的第一个值),无论年龄如何。我真的想不通:/

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Quebec and Federal Immigration Points Calculator</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script type="text/javascript">
function showAge(){
var d =document.getElementById('dob').value.split('/');
var today = new Date();
var bday = new Date(d[2],d[1],d[0]);
var age = today.getFullYear() - bday.getFullYear();
if(today.getMonth() < bday.getMonth() || (today.getMonth() == bday.getMonth() && today.getDate() < bday.getDate()))
{
t = age--;
}
else {
t = age
}
form.age.value = t;
}
</script>
<script type="text/javascript">
function compute(form)
{
var a = parseInt(form.age.value, 10) || 0;
if (21 <= a <= 49){
f = 10;
}
else if (20 == a == 50){
f = 8;
}
else if (19 == a == 51){
f = 6;
}
else if (18 == a == 52){
f = 4;
}
else if (17 == a == 53){
f = 2;
}
else if (17 > a > 53){
f = 0;
}
form.rsltf.value = f;
if (18 <= a <= 35){
q = 16;
}
else if (a == 36){
q = 14;
}
else if (a == 37){
q = 12;
}
else if (a == 38){
q = 10;
}
else if (a == 39){
q = 8;
}
else if (a == 40){
q = 6;
}
else if (a == 41){
q = 4;
}
else if (a == 42){
q = 2;
}
else if (18 > a > 43){
q = 0;
}
form.rsltq.value = q;
}
</script>
</head>
<body>
<form name="form">
<p>Your Date of Birth (format:<strong>dd/mm/yyyy</strong>)</p><br />
<input onBlur="compute(this.form)" onchange="showAge()" name="dob" id="dob" />
<p>Your Age</p><input name="age" type="text" style="font-size: 15px" value="" size="7" readonly>
<h1>Your education</h1>

<INPUT NAME="calc" VALUE="Calculate" TYPE="button" onClick="compute(this.form)"><br />
<input name="rsltf" type="text" style="font-size: 50px" value="" size="20" readonly /><br />
<input name="rsltq" type="text" style="font-size: 50px" value="" size="20" readonly />
</form>
</body>
</html>

最佳答案

您不能在 javascript 中执行此操作:21 <= a <= 49

你必须做21 <= a && a <= 49 .

21 <= a <= 49被解释为(21 <= a) <= 49 ,因此它将 bool 与 49 进行比较。当转换为数字时,bool 变为 1 或 0,因此它始终小于 49。

关于javascript - 使用 if..else 语句根据年龄计算分数,脚本仅显示第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8599381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com