/    Sign up×
Community /Pin to ProfileBookmark

Calculating Fields

I am creating a form which has a product field with 4 price boxes for the products and a subtotal for this section. This is repeated four more times. At the end I have a grand total box in which I want the total from the 5 other subtotal boxes to be added into this box. I’m stuck at the point of trying to add the 5 subtotal boxes into the total box. I’ll post my code and maybe you can help me from there.

<!– Start Javascript–>
<head><script>
function dollars(n) {
n=eval(n);
n=Math.round(n*100)/100;
return (n == Math.round(n)) ? n += “.00” : (n*
10 == Math.round(n*10)) ? n +=”0″ : n;
}

function subtotal_price() {
s1=eval(document.media.cassettetotal.value);
s2=eval(document.media.cdtotal.value);
s3=eval(document.media.videototal.value);
s4=eval(document.media.dvdtotal.value);
document.media.total.value=dollars(s1+s2+s3+s4);
total_price();
}

function subtotal_pricea() {
s5=eval(document.media.cassettetotal1.value);
s6=eval(document.media.cdtotal1.value);
s7=eval(document.media.videototal1.value);
s8=eval(document.media.dvdtotal1.value);
document.media.total1.value=dollars(s5+s6+s7+s8);
total_price();
}

function subtotal_priceb() {
s9=eval(document.media.cassettetotal2.value);
s10=eval(document.media.cdtotal2.value);
s11=eval(document.media.videototal2.value);
s12=eval(document.media.dvdtotal2.value);
document.media.total2.value=dollars(s9+s10+s11+s12);
total_price();
}

function subtotal_pricec() {
s13=eval(document.media.cassettetotal3.value);
s14=eval(document.media.cdtotal3.value);
s15=eval(document.media.videototal3.value);
s16=eval(document.media.dvdtotal3.value);
document.media.total3.value=dollars(s13+s14+s15+s16);
total_price();
}

function subtotal_priced() {
s17=eval(document.media.cassettetotal4.value);
s18=eval(document.media.cdtotal4.value);
s19=eval(document.media.videototal4.value);
s20=eval(document.media.dvdtotal4.value);
document.media.total4.value=dollars(s17+s18+s19+s20);
total_price();
}

function total_price() {
s21=eval(document.media.total.value);
s22=eval(document.media.total1.value);
s23=eval(document.media.total2.value);
s24=eval(document.media.total3.value);
s25=eval(document.media.total4.value);
document.media.grandtotal.value=dollars(s21+s22+s23+s24+s25);
}

function cassette_price() {
cassette_index=document.media.cassette.selectedIndex;
cassette_value=document.media.cassette[cassette_index].value;
cassette_quantity=document.media.cassettequantity. selectedIndex;
document.media.cassettetotal.value=dollars(cassette_value*cassette_quantity);
subtotal_price();
}

function cassette_pricea() {
cassette_indexa=document.media.cassette1.selectedIndex;
cassette_valuea=document.media.cassette1[cassette_indexa].value;
cassette_quantitya=document.media.cassettequantity1. selectedIndex;
document.media.cassettetotal1.value=dollars(cassette_valuea*cassette_quantitya);
subtotal_pricea();
}

function cassette_priceb() {
cassette_indexb=document.media.cassette2.selectedIndex;
cassette_valueb=document.media.cassette2[cassette_indexb].value;
cassette_quantityb=document.media.cassettequantity2. selectedIndex;
document.media.cassettetotal2.value=dollars(cassette_valueb*cassette_quantityb);
subtotal_priceb();
}

function cassette_pricec() {
cassette_indexc=document.media.cassette3.selectedIndex;
cassette_valuec=document.media.cassette3[cassette_indexc].value;
cassette_quantityc=document.media.cassettequantity3. selectedIndex;
document.media.cassettetotal3.value=dollars(cassette_valuec*cassette_quantityc);
subtotal_pricec();
}

function cassette_priced() {
cassette_indexd=document.media.cassette4.selectedIndex;
cassette_valued=document.media.cassette4[cassette_indexd].value;
cassette_quantityd=document.media.cassettequantity4. selectedIndex;
document.media.cassettetotal4.value=dollars(cassette_valued*cassette_quantityd);
subtotal_priced();
}

function cd_price() {
cd_index=document.media.cd.selectedIndex;
cd_value=document.media.cd[cd_index].value;
cd_quantity=document.media.cdquantity.selectedIndex;
document.media.cdtotal.value=dollars(cd_value*cd_quantity);
subtotal_price();
}

function cd_pricea() {
cd_indexa=document.media.cd1.selectedIndex;
cd_valuea=document.media.cd1[cd_indexa].value;
cd_quantitya=document.media.cdquantity1.selectedIndex;
document.media.cdtotal1.value=dollars(cd_valuea*cd_quantitya);
subtotal_pricea();
}

function cd_priceb() {
cd_indexb=document.media.cd2.selectedIndex;
cd_valueb=document.media.cd2[cd_indexb].value;
cd_quantityb=document.media.cdquantity2.selectedIndex;
document.media.cdtotal2.value=dollars(cd_valueb*cd_quantityb);
subtotal_priceb();
}

function cd_pricec() {
cd_indexc=document.media.cd3.selectedIndex;
cd_valuec=document.media.cd3[cd_indexc].value;
cd_quantityc=document.media.cdquantity3.selectedIndex;
document.media.cdtotal3.value=dollars(cd_valuec*cd_quantityc);
subtotal_pricec();
}

function cd_priced() {
cd_indexd=document.media.cd4.selectedIndex;
cd_valued=document.media.cd4[cd_indexd].value;
cd_quantityd=document.media.cdquantity4.selectedIndex;
document.media.cdtotal4.value=dollars(cd_valued*cd_quantityd);
subtotal_priced();
}

function video_price() {
video_index=document.media.video.selectedIndex;
video_value=document.media.video[video_index].value;
video_quantity=document.media.videoquantity.selectedIndex;
document.media.videototal.value=dollars(video_value*video_quantity);
subtotal_price();
}

function video_pricea() {
video_indexa=document.media.video1.selectedIndex;
video_valuea=document.media.video1[video_indexa].value;
video_quantitya=document.media.videoquantity1.selectedIndex;
document.media.videototal1.value=dollars(video_valuea*video_quantitya);
subtotal_pricea();
}

function video_priceb() {
video_indexb=document.media.video2.selectedIndex;
video_valueb=document.media.video2[video_indexb].value;
video_quantityb=document.media.videoquantity2.selectedIndex;
document.media.videototal2.value=dollars(video_valueb*video_quantityb);
subtotal_priceb();
}

function video_pricec() {
video_indexc=document.media.video3.selectedIndex;
video_valuec=document.media.video3[video_indexc].value;
video_quantityc=document.media.videoquantity3.selectedIndex;
document.media.videototal3.value=dollars(video_valuec*video_quantityc);
subtotal_pricec();
}

function video_priced() {
video_indexd=document.media.video4.selectedIndex;
video_valued=document.media.video4[video_indexd].value;
video_quantityd=document.media.videoquantity4.selectedIndex;
document.media.videototal4.value=dollars(video_valued*video_quantityd);
subtotal_priced();
}

function dvd_price() {
dvd_index=document.media.dvd.selectedIndex;
dvd_value=document.media.dvd[dvd_index].value;
dvd_quantity=document.media.dvdquantity.selectedIndex;
document.media.dvdtotal.value=dollars(dvd_value*dvd_quantity);
subtotal_price();
}

function dvd_pricea() {
dvd_indexa=document.media.dvd1.selectedIndex;
dvd_valuea=document.media.dvd1[dvd_indexa].value;
dvd_quantitya=document.media.dvdquantity1.selectedIndex;
document.media.dvdtotal1.value=dollars(dvd_valuea*dvd_quantitya);
subtotal_pricea();
}

function dvd_priceb() {
dvd_indexb=document.media.dvd2.selectedIndex;
dvd_valueb=document.media.dvd2[dvd_indexb].value;
dvd_quantityb=document.media.dvdquantity2.selectedIndex;
document.media.dvdtotal2.value=dollars(dvd_valueb*dvd_quantityb);
subtotal_priceb();
}

function dvd_pricec() {
dvd_indexc=document.media.dvd3.selectedIndex;
dvd_valuec=document.media.dvd3[dvd_indexc].value;
dvd_quantityc=document.media.dvdquantity3.selectedIndex;
document.media.dvdtotal3.value=dollars(dvd_valuec*dvd_quantityc);
subtotal_pricec();
}

function dvd_priced() {
dvd_indexd=document.media.dvd4.selectedIndex;
dvd_valued=document.media.dvd4[dvd_indexd].value;
dvd_quantityd=document.media.dvdquantity4.selectedIndex;
document.media.dvdtotal4.value=dollars(dvd_valued*dvd_quantityd);
subtotal_priced();
}
</script>

*the text I’m receiving in the total box is NaN… What does this mean?*

to post a comment
JavaScript

1 Comments(s)

Copy linkTweet thisAlerts:
@phpnoviceApr 27.2005 — *the text I'm receiving in the total box is NaN... What does this mean?*[/QUOTE]
It means you cannot simply do this:
<i>
</i>function subtotal_price() {
s1=eval(document.media.cassettetotal.value);
s2=eval(document.media.cdtotal.value);
s3=eval(document.media.videototal.value);
s4=eval(document.media.dvdtotal.value);
document.media.total.value=dollars(s1+s2+s3+s4);
total_price();
}

That would need to go more like this:
<i>
</i>function subtotal_price() {
s1=Number(document.media.cassettetotal.value);
if (isNaN(s1)) s1 = 0;
s2=Number(document.media.cdtotal.value);
if (isNaN(s2)) s2 = 0;
s3=Number(document.media.videototal.value);
if (isNaN(s3)) s3 = 0;
s4=Number(document.media.dvdtotal.value);
if (isNaN(s4)) s4 = 0;
document.media.total.value=dollars(s1+s2+s3+s4);
total_price();
}
×

Success!

Help @HisWebMaster spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.27,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...