I am building a website for a restaurant and want users to be able to choose how much food they would like to order. I am very new to JavaScript and am going to school for it right now but in the meantime I need some help with this question.
I have it so far that it will calculate a total based on the quantity and the price, the problem that I am having is that the customer can change the price! How can I change this and not change my code too much since it has taken me forever to get it to work.
Here is my HTML:
<tr>
<td>Bruschetta con Crema di Agliotoa</td>
<td><input type="text" value="" name="QTY" id="QTY" onKeyUp="multiply()"/></td>
<td><input type="text" name="PPRICE" id="PPRICE" value="8" /></td>
<td><input type="text" name="TOTAL" id="TOTAL" /></td>
</tr>
And my simple script:
function multiply()
{
a = Number(document.getElementById('QTY').value);
b = Number(document.getElementById('PPRICE').value);
c = a * b;
document.getElementById('TOTAL').value = c;
}
"…it has taken me forever to get it to work"
Some hints:
Presumably the controls are in a form, so you can use that to more easily reference elements. Start by passing a reference from the element calling the listener:
Then in your function, you can more easily reference other controls. Remember to keep variables local with var, and multiplication implicitly converts values to Number:
Follow other's suggestions regarding making the total readonly, and apply validation at the server to ensure you get acceptable data (client side validation is for convenience only, it has no value for security or data cleansing).
For posting, your HTML can be as simple as: