wildbill
11-13-2003, 11:53 AM
Hey guys I am a newbie to JavaScript. I wrote the following code but now I am running into problems when I try and validate my radio buttons. I put the validation code in its own function and called it in the calculation function. Now, when I try and validate the option buttons I am lost on what to do because I used the onClick event handler to take what the user clicks on and put it into a variable....
If anyone can show or tell me how I would validate the buttons in my code I would appreciate it. Thanks guys!
--------------------------------------------------------------------
<HTML>
<HEAD>
<TITLE>Estimate Calculator</TITLE>
<SCRIPT LANGUAGE="JavaScript">
// Variable used to track which, if any, radio button is checked.
var logo_selection="";
var register_selection="";
var hosting_selection="";
</SCRIPT>
</HEAD>
<BODY LEFTMARGIN="0" TOPMARGIN="0">
<TABLE WIDTH="620" BORDER="0" cellpadding=0 cellspacing=0>
<TR>
<TD WIDTH="10"></TD>
<TD WIDTH="600">
<FORM NAME="calc" onSubmit="return calculate()"><input type="hidden" name="Horde" value="4e01829728ea9e570471a3cf5b10a7d7" />
<TABLE BORDER="1" ALIGN="center">
<TR><TH COLSPAN="3"><IMG SRC="estcal.gif" HEIGHT="38" WIDTH="376"></TH></TR>
<TR>
<TD><FONT SIZE=+1>How many pages do you want?:</FONT></TD>
<TD COLSPAN="2">
<CENTER>
<SELECT NAME="pages">
<OPTION VALUE="none">Please Select
<OPTION VALUE="1">1
<OPTION VALUE="2">2
<OPTION VALUE="5">up to 5
<OPTION VALUE="10">up to 10
<OPTION VALUE="20">up to 20
</SELECT>
</CENTER>
</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>Do you need a custom logo designed?:</FONT></TD>
<TD><INPUT TYPE="radio" NAME="logo" VALUE="yes" onClick="logo_selection='yes'">Yes</TD>
<TD><INPUT TYPE="radio" NAME="logo" VALUE="no" onClick="logo_selection='no'">No</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>Do you need to register a domain name?:</FONT></TD>
<TD><INPUT TYPE="radio" NAME="register" VALUE="Yes" onClick="register_selection='yes'">Yes</TD>
<TD><INPUT TYPE="radio" NAME="register" VALUE="No" onClick="register_selection='no'">No</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>Do you want us to host your webpage for a year?:</FONT></TD>
<TD><INPUT TYPE="radio" NAME="hosting" VALUE="Yes" onClick="hosting_selection='yes'">Yes</TD>
<TD><INPUT TYPE="radio" NAME="hosting" VALUE="No" onClick="hosting_selection='no'">No</TD>
</TR>
<TR>
<TD COLSPAN="3"><CENTER><INPUT TYPE="SUBMIT" VALUE="CALCULATE"><INPUT TYPE="RESET" VALUE="RESET"></CENTER></TD>
</TR>
</TABLE>
</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin hiding script from older Browser
function validate()
{
// validate drop down list
if
(document.calc.pages.options[document.calc.pages.selectedIndex].value=="none")
{
alert("You must select the number of pages you want.")
document.calc.pages.focus()
return false
}
}
var pagePrice = 60
var logoPrice = 75
var domainPrice = 15
var yearHosting = 180
function calculate()
{
if(document.calc.pages.options[document.calc.pages.selectedIndex].value=="none")
validate()
var numberOfPages = document.calc.pages.value
pageTotal = numberOfPages * pagePrice
if(logo_selection=="yes")
pageTotal+= logoPrice
if(register_selection=="yes")
pageTotal+= domainPrice
if(hosting_selection=="yes")
pageTotal+= yearHosting
if(document.calc.pages.options[document.calc.pages.selectedIndex].value!="none")
alert("Your total estimate is: " +pageTotal)
}
//--> End hiding Script
</SCRIPT>
<NOSCRIPT>
Your browser does not support JavaScript or JavaScript has been disabled.
</NOSCRIPT>
<HR noshade COLOR="#FE0232">
<TABLE ALIGN="CENTER">
<TR>
<TD>
<font face="arial" size="1"><CENTER>Copyright © B&D Webdesigns,
2003. All Rights Reserved.</CENTER></FONT>
</TD>
</TR>
<TR>
<TD><A HREF="frameset.html?Horde=4e01829728ea9e570471a3cf5b10a7d7">Home</A> | <A HREF="clients.html?Horde=4e01829728ea9e570471a3cf5b10a7d7">Clients</A> | <A HREF="rates.html?Horde=4e01829728ea9e570471a3cf5b10a7d7">Rates</A> | <A HREF="estimatecalculator.html?Horde=4e01829728ea9e570471a3cf5b10a
If anyone can show or tell me how I would validate the buttons in my code I would appreciate it. Thanks guys!
--------------------------------------------------------------------
<HTML>
<HEAD>
<TITLE>Estimate Calculator</TITLE>
<SCRIPT LANGUAGE="JavaScript">
// Variable used to track which, if any, radio button is checked.
var logo_selection="";
var register_selection="";
var hosting_selection="";
</SCRIPT>
</HEAD>
<BODY LEFTMARGIN="0" TOPMARGIN="0">
<TABLE WIDTH="620" BORDER="0" cellpadding=0 cellspacing=0>
<TR>
<TD WIDTH="10"></TD>
<TD WIDTH="600">
<FORM NAME="calc" onSubmit="return calculate()"><input type="hidden" name="Horde" value="4e01829728ea9e570471a3cf5b10a7d7" />
<TABLE BORDER="1" ALIGN="center">
<TR><TH COLSPAN="3"><IMG SRC="estcal.gif" HEIGHT="38" WIDTH="376"></TH></TR>
<TR>
<TD><FONT SIZE=+1>How many pages do you want?:</FONT></TD>
<TD COLSPAN="2">
<CENTER>
<SELECT NAME="pages">
<OPTION VALUE="none">Please Select
<OPTION VALUE="1">1
<OPTION VALUE="2">2
<OPTION VALUE="5">up to 5
<OPTION VALUE="10">up to 10
<OPTION VALUE="20">up to 20
</SELECT>
</CENTER>
</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>Do you need a custom logo designed?:</FONT></TD>
<TD><INPUT TYPE="radio" NAME="logo" VALUE="yes" onClick="logo_selection='yes'">Yes</TD>
<TD><INPUT TYPE="radio" NAME="logo" VALUE="no" onClick="logo_selection='no'">No</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>Do you need to register a domain name?:</FONT></TD>
<TD><INPUT TYPE="radio" NAME="register" VALUE="Yes" onClick="register_selection='yes'">Yes</TD>
<TD><INPUT TYPE="radio" NAME="register" VALUE="No" onClick="register_selection='no'">No</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>Do you want us to host your webpage for a year?:</FONT></TD>
<TD><INPUT TYPE="radio" NAME="hosting" VALUE="Yes" onClick="hosting_selection='yes'">Yes</TD>
<TD><INPUT TYPE="radio" NAME="hosting" VALUE="No" onClick="hosting_selection='no'">No</TD>
</TR>
<TR>
<TD COLSPAN="3"><CENTER><INPUT TYPE="SUBMIT" VALUE="CALCULATE"><INPUT TYPE="RESET" VALUE="RESET"></CENTER></TD>
</TR>
</TABLE>
</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin hiding script from older Browser
function validate()
{
// validate drop down list
if
(document.calc.pages.options[document.calc.pages.selectedIndex].value=="none")
{
alert("You must select the number of pages you want.")
document.calc.pages.focus()
return false
}
}
var pagePrice = 60
var logoPrice = 75
var domainPrice = 15
var yearHosting = 180
function calculate()
{
if(document.calc.pages.options[document.calc.pages.selectedIndex].value=="none")
validate()
var numberOfPages = document.calc.pages.value
pageTotal = numberOfPages * pagePrice
if(logo_selection=="yes")
pageTotal+= logoPrice
if(register_selection=="yes")
pageTotal+= domainPrice
if(hosting_selection=="yes")
pageTotal+= yearHosting
if(document.calc.pages.options[document.calc.pages.selectedIndex].value!="none")
alert("Your total estimate is: " +pageTotal)
}
//--> End hiding Script
</SCRIPT>
<NOSCRIPT>
Your browser does not support JavaScript or JavaScript has been disabled.
</NOSCRIPT>
<HR noshade COLOR="#FE0232">
<TABLE ALIGN="CENTER">
<TR>
<TD>
<font face="arial" size="1"><CENTER>Copyright © B&D Webdesigns,
2003. All Rights Reserved.</CENTER></FONT>
</TD>
</TR>
<TR>
<TD><A HREF="frameset.html?Horde=4e01829728ea9e570471a3cf5b10a7d7">Home</A> | <A HREF="clients.html?Horde=4e01829728ea9e570471a3cf5b10a7d7">Clients</A> | <A HREF="rates.html?Horde=4e01829728ea9e570471a3cf5b10a7d7">Rates</A> | <A HREF="estimatecalculator.html?Horde=4e01829728ea9e570471a3cf5b10a