Click to See Complete Forum and Search --> : Rerunning function not changing field


kasar
09-04-2003, 12:34 AM
It appears that the function's rerun when changing radio button arrangements, but the displayed value doesn't update. I tried a few methods that sounded promising, but no joy.

<html>
<head>
<title>Required Fields</title>
<script>
function fee(){
if (document.Worksheet.Loan[0].checked &&

document.Worksheet.Purpose[0].checked) {fee=415;}
else if (document.Worksheet.Loan[1].checked &&

document.Worksheet.Purpose[0].checked) {fee=540;}
else if (document.Worksheet.Loan[2].checked &&

document.Worksheet.Purpose[1].checked) {fee=490;}
else if (document.Worksheet.Loan[2].checked &&

document.Worksheet.Purpose[2].checked) {fee=490;}
else if (document.Worksheet.Loan[3].checked &&

document.Worksheet.Purpose[1].checked) {fee=490;}
else if (document.Worksheet.Loan[3].checked &&

document.Worksheet.Purpose[2].checked) {fee=490;}

document.Worksheet.MFI_MCA_FEE.value= "$" + fee;
}
</script>
</head>
<body>
<form name="Worksheet">
<input type="RADIO" NAME="Loan" VALUE="Conventional"

onClick="fee()">Conventional
<input type="RADIO" NAME="Loan" VALUE="FHA" onClick="fee()">FHA
<input type="RADIO" NAME="Loan" VALUE="VA" onClick="fee()">VA
<br>
<input type="RADIO" NAME="Purpose" VALUE="Purchase" onClick="fee()">Purchase
<input type="RADIO" NAME="Purpose" VALUE="Refi" onClick="fee()">Refinance
<br>
Your total is: <br>
<input type="text" name="MFI_MCA_FEE" size=10 maxlength=10 onFocus="fee()">
</form>
</body>
</html>

Fang
09-04-2003, 01:27 AM
You are checking radio buttons that do not exist.
The radio array begins at 0.
document.Worksheet.Loan[3].checked This is the 4th Loan radio button.
document.Worksheet.Purpose[2].checked The 3rd

Charles
09-04-2003, 01:27 AM
1) Your HTML is invalid.

2) Among other things, you have more conditions in your JavaScript than you have buttons to push.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Content-Script-Type" content="text/javascript">
<title>Example</title>
<script type="text/javascript">
<!--
function getFee(f){
if (f.loan[0].checked && f.purpose[0].checked) {f.mfiMcaFee.value = '$415'}
else if (f.loan[1].checked && f.purpose[0].checked) {f.mfiMcaFee.value = '$540'}
else if (f.loan[2].checked && f.purpose[1].checked) {f.mfiMcaFee.value = '$490'}
else if (f.loan[2].checked && f.purpose[2].checked) {f.mfiMcaFee.value = '$490'}
else if (f.loan[3].checked && f.purpose[1].checked) {f.mfiMcaFee.value = '$490'}
else if (f.loan[3].checked && f.purpose[2].checked) {f.mfiMcaFee.value = '$490'}
}
// -->
</script>
<form>
<div>
<label><input type="radio" name="loan" value="Conventional" onclick="getFee(this.form)">Conventional </label>
<label><input type="radio" name="loan" value="FHA" onclick="getFee(this.form)">FHA </label>
<label><input type="radio" name="loan" value="VA" onclick="getFee(this.form)">VA</label>
<label><input type="radio" name="loan" value="FOO" onclick="getFee(this.form)">FOO</label>
</div>
<div>
<label><input type="radio" name="purpose" value="Purchase" onclick="getFee(this.form)">Purchase</label>
<label><input type="radio" name="purpose" value="Refi" onclick="getFee(this.form)">Refinance </label>
<label><input type="radio" name="purpose" value="fee" onclick="getFee(this.form)">fee</label>
</div>
<p><label>Your total is:<input type="text" name="mfiMcaFee" style="display:block; width:10em"></label></p>
</form>

kasar
09-04-2003, 01:52 AM
That's what I get for ripping part out and not checking the apparent changes (that, and not using the HTML 4 standard headers). It's part of a much larger data entry form they're checking boxes on and manually adding that value from a table.

Anyway, thanks, that looks like the answer I needed.