I'm having issues with a simple price calculator I'm making. I've learned Javascript and I went over everything and it looks fine, but I'm definitely missing something since the final price isn't appearing. I've checked it a few times but maybe it needs a new set of eyes:
<form action="" name="costcalculator" id="costcalculator" onsubmit="return false;"> // I put name and ID to be safe
<b>1.</b> What type of website do you need?<br>
<input type="radio" name="typesite" value="Standard" onclick="calculateTotal()" />
A standard website<br>
<input type="radio" name="typesite" value="Full Blog" onclick="calculateTotal()" />
A website that allows visitors to leave comments on blog posts<br>
<center><input type='submit' id='submit' value='Submit' onclick="calculateTotal()" /></center><p>
<div id="totalPrice"></div> </form>
The script:
var typesite = new Array(); // typesite is taken from the HTML
typesite["Standard"]=20;
typesite["Full Blog"]=30;
function getLayoutPrice() // new name for function
{
var layoutPrice=0; // new name for the variable
var theForm = document.forms["costcalculator"]; // comes from form name/ID
var typeSite = theForm.elements["typesite"]; // new variable name and name from HTML
for(var i = 0; i < typeSite.length; i++)
{
if(typeSite[i].checked)
{
layoutPrice = typesite[typeSite[i].value];
break;
}
}
return layoutPrice; // taken from the variable created earlier
}
function calculateTotal()
{
var totalPrice = getLayoutPrice();
var divobj = document.getElementById('totalPrice');
divobj.style.display='block';
divobj.innerHTML = "Total Price would be about $"+totalPrice;
}
function hideTotal()
{
var divobj = document.getElementById('totalPrice');
divobj.style.display='none';
}
Tested in current Chrome and Firefox and seems to work fine, as can be observed from running the snippet below.
var typesite = new Array(); // typesite is taken from the HTML typesite["Standard"]=20; typesite["Full Blog"]=30; function getLayoutPrice() // new name for function { var layoutPrice=0; // new name for the variable var theForm = document.forms["costcalculator"]; // comes from form name/ID var typeSite = theForm.elements["typesite"]; // new variable name and name from HTML for(var i = 0; i < typeSite.length; i++) { if(typeSite[i].checked) { layoutPrice = typesite[typeSite[i].value]; break; } } return layoutPrice; // taken from the variable created earlier } function calculateTotal() { var totalPrice = getLayoutPrice(); var divobj = document.getElementById('totalPrice'); divobj.style.display='block'; divobj.innerHTML = "Total Price would be about $"+totalPrice; } function hideTotal() { var divobj = document.getElementById('totalPrice'); divobj.style.display='none'; }
<form action="" name="costcalculator" id="costcalculator" onsubmit="return false;"> // I put name and ID to be safe <b>1.</b> What type of website do you need?<br> <input type="radio" name="typesite" value="Standard" onclick="calculateTotal()" /> A standard website<br> <input type="radio" name="typesite" value="Full Blog" onclick="calculateTotal()" /> A website that allows visitors to leave comments on blog posts<br> <center><input type='submit' id='submit' value='Submit' onclick="calculateTotal()" /></center><p> <div id="totalPrice"></div> </form>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.