0

制作一个简单的 javascript 程序,根据用户的年龄和婚姻状况将用户分类到特定的保险范围内。以下程序有效,但是当我测试程序时,我无法让程序正确区分 3 类和 4 类保险。我对javascript相当陌生,所以如果我有一些愚蠢的事情,请原谅。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>

       <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title> Insurance Program </title>

<script type = "text/javascript">

function insurance(form)
{

var fname = form.firstname.value;
var sname = form.surname.value;
var age = form.age.value;
var insurance;

var marital = form.maritalstatus.value;

document.write(marital);

if (marital = 2 && age >= 30)
{
insurance = "Grade 1";
}

else if (marital = 1 && age > 30)
{
insurance = "Grade 2";
}

else if (marital = 2 && age < 30)
{
insurance = "Grade 3";
}

else if (marital = 1 && age < 30)
{
insurance = "Grade 4";
}

document.write("Thank you " + fname + " " + sname + "<br>");
document.write("You belong to " + insurance + " Insurance");

}

</script>


</head>

<body>

<h4> Insurance Program </h4>

<form>
Enter your first-name : <input type = "text" name="firstname"> 
Enter your surname : <input type = "text" name="surname"> <br>
Enter your age: <input type = "text" name="age"> <br>
Select your current marital status
<Select id ="maritalstatus" name = "maritalstatus">
<option value = "1"> Single </option>
<option value = "2"> Married </option>
</Select>


<input type = "submit" value = "submit" onclick="insurance(this.form)">
</form>


</body>
</html>
4

4 回答 4

3

一方面,你=在应该使用的时候使用===。例子:

if (martial === 2 && age >= 30)

martial = 2并且martial = 1总是正确的,所以最后两个 else if 是相同的。

参考:=赋值运算符=====比较运算符

JSF中

if (parseInt(marital, 10) === 2 && parseInt(age, 10) >= 30) {
    ins = "Grade 1";
}
else if (parseInt(marital, 10) === 1 && parseInt(age, 10) >= 30) {
    ins = "Grade 2";
}
else if (parseInt(marital, 10) === 2 && parseInt(age, 10) < 30) {
    ins = "Grade 3";
}
else if (parseInt(marital, 10) === 1 && parseInt(age, 10) < 30) {
    ins = "Grade 4";
}
于 2012-11-21T19:55:32.807 回答
2

你的问题是每一行看起来像这样:

martial = 1 && ...

marital = 1设置marital1。你想比较 marital1所以使用双等号:

martial == 1 && ...
于 2012-11-21T19:56:04.977 回答
0

您在操作数中误用=了符号if,如果您需要比较值,请使用==or with ===(用于严格的类型检查)

于 2012-11-21T19:56:26.607 回答
0

您的条件中应该有 '=='

武术 = 2 && 年龄 >= 30

武术 == 2 && 年龄 >= 30

因为 = 是赋值运算符,而 == 是比较。

于 2012-11-21T19:57:28.547 回答