我的数学似乎都是正确的,唯一不起作用的是 if 语句。它总是根据男性值(value)进行数学计算。
javascript:
function updatespending() {
var age = parseFloat(document.forms[0].CurrentAge.value);
var value = parseFloat(document.forms[0].NetWorth.value);
if(document.forms[0].sex.value = "male") {
var yearsleft = Math.round (76 - age);
} else if(document.forms[0].sex.value = "female") {
var yearsleft = 81 - age;
}
}
html:
<table width="433" border="1" align="center">
<tr>
<td class="liquidate">How much will you have to live off of if you liquidate all of your assets?</td>
</tr>
<tr>
<td width="381" height="68">
<table width="100%" border="0" cellpadding="4" cellspacing="4">
<tr>
<td align="right">Sex:</td>
<td>
<input type="radio" name="sex" value="male">Male<br>
<input type="radio" name="sex" value="female">Female
</td>
</tr>
<tr>
<td align="right">Current Age:</td>
<td>
<input type="text" onchange="updatespending()" onkeyup="numericOnly(this)" maxlength="2" size="3" value="0" name="CurrentAge" />
</td>
</tr>
<tr>
<td align="right" >Annual Spending Available:</td>
<td>$<input name="AnnualSpending" disabled="disabled" readonly /> </td>
</tr>
</table>
</td>
</tr>
</table>
我还想这样做,如果个人将性别从男性更改为女性,它会像我更新当前年龄时那样更新支出。不太确定 on change 是否会正常工作。任何其他建议都会很棒。
最佳答案
问题是你在说
if(document.forms[0].sex.value = "male")
//this statement always return true so it will always go to if statement block.
你应该说
if(document.forms[0].sex.value == "male") {
关于Javascript If 语句无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24749397/