Not really sure what I did wrong. But my two of my errors do not display, the nPrice and nAmount. However, my name and nSmokes displays. I'm thinking it has something to do with the if else's multiple condition i'm using.
I'd really like to get your thoughts.
Thanks in advance.
function doValidate()
{
//alert("Working");
document.myForm.nPrice.value=parseFloat(document.myForm.nPrice.value);
document.myForm.nAmount.value=parseInt(document.myForm.nAmount.value);
document.myForm.nSmokes.value=parseInt(document.myForm.nSmokes.value);
//alert(document.myForm.nPrice.value);
//alert(document.myForm.nAmount.value);
//alert(document.myForm.nSmokes.value);
errorCount = 0;
errorMsg = ""
if( document.myForm.name.value == "") {
errorMsg = errorMsg + "You need to enter a value!";
document.getElementById('errors').innerHTML= errorMsg;
errorCount++;
}
if (document.myForm.nPrice.value < 0 && document.myForm.nPrice.value > 20.00) {
errorMsg = errorMsg + "You need to enter a value between 0 and 20!";
document.getElementById('errors').innerHTML= errorMsg;
errorCount++;
}
if (document.myForm.nAmount.value < 0 && document.myForm.nAmount.value > 40) {
errorMsg = errorMsg + "You need to enter a value between 0 and 40!";
document.getElementById('errors').innerHTML= errorMsg;
errorCount++;
}
if (document.myForm.nSmokes.value < 0) {
errorMsg = errorMsg + "<br/>Either your doing a great job or you put in that you smoked 0 today!";
document.getElementById('errors').innerHTML= errorMsg;
errorCount++;
}
if (errorCount > 0) {
return false;
} else {
return true;
}
}
HTML
<form name="myForm" method="post" id="myForm" onsubmit="return doValidate();">
<table width="600" border="1" cellspacing="4" cellpadding="4">
<tr>
<td colspan="2" align="center"><img src="quitSmoking.jpg" width="278"/></td>
</tr>
<tr>
<td colspan="2" align="center">Quit Smoking Calculator by Your Name</td>
</tr>
<tr>
<td>Your Name</td>
<td><input type="text" name="name" id="name" /> </td>
</tr>
<tr>
<td>Date you Quit</td>
<td><input name="startDate" type="text">
<input type="button" value="select" onclick="displayDatePicker('startDate');"> </td>
</tr>
<tr>
<td>Price of a pack</td>
<td><input type="text" name="nPrice" id="nPrice" value="8.00" /> </td>
</tr>
<tr>
<td>How many in a pack</td>
<td><input type="text" name="nAmount" id="nAmount" value="20" /> </td>
</tr>
<tr>
<td>Number of cigarettes you smoked a day</td>
<td><input type="text" name="nSmokes" id="nSmokes" value="25" /> </td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="btnSubmit" id="btnSubmit" value="Calculate Savings" /></td>
</tr>
<tr>
<td colspan="2" align="center"><div id="errors"></div></td>
</tr>
<tr>
<td id="rowResult" colspan="2" align="center">
<input type="hidden" name="nResult" id="nResult" value="" />
</td>
</tr>
</table>
</form>
document.myForm.nPrice.value=parseFloat(document.myForm.nPrice.value); document.myForm.nAmount.value=parseInt(document.myForm.nAmount.value); document.myForm.nSmokes.value=parseInt(document.myForm.nSmokes.value);in your code is doing nothing. DOM elements don't hold a data type - you need to place it in a Javascript variable for it to hold a type.