Rreka1Medlem sedan sep. 2001650 inlägg Frågan#1 Hej!
Jag skulle vilja att ett formulärfält uppdateras vid inmatning av ett annat fält.
Tex.
Artikel: Legoask
A-pris: 200 kr
Antal: 3
Summa: 600
Fältet summa ska alltså ändras beronde på det antal man uppger.
Går det att ordna måntro?
Edit: summan skall alltså ändras efter man lämnar fältet "antal", man ska inte behöva submit:a för att få se summan.
Gjorde en liten snabbis som borde fungera som du vill:
<html>
<head>
<script language="javascript">
function addera(){
a = document.getElementById('apris').value;
b = document.getElementById('antal').value;
document.getElementById('summa').value = a*b;
}
</script>
</head>
<body>
<form>
<label for="art">Artikel:</label>
<input type="text" id="art"><br />
<label for="apris">A-pris:</label>
<input type="text" id="apris"><br />
<label for="antal">Antal:</label>
<input type="text" id="antal" onchange="addera();"><br />
<label for="summa">Summa:</label>
<input type="text" id="summa"><br />
<input type="submit" value="Skicka">
</form>
</body>
</html>
PPeter SMedlem sedan dec. 20025 483 inlägg Hej!
Nedan följer en lösning med enklare validering. Om du vill se ändringar omedelbart kan du leka med onkey/-press/-down/-up.
<script type="text/javascript">
function updateSum(f)
{
var price = /^\d+(?:[\.,]\d+)?$/.exec(f.elements["price"].value);
var quantity = /^\d+$/.exec(f.elements["quantity"].value);
if (price && quantity){
f.elements["sum"].value = parseFloat(price[0].replace(/,/,'.')) * parseInt(quantity[0]);
}
}
</script>
<form>
<input name="price" onblur="updateSum(this.form)">
<input name="quantity" onblur="updateSum(this.form)">
<input name="sum">
</form>