webForumDet fria alternativet

Självuppdaterande fält?

JavaScriptur Javascript

2 svar · 321 visningar · startad av reka1

Medlem 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.

Medlem sedan juli 2006461 inlägg
#2

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>
Medlem sedan dec. 20025 483 inlägg
#3

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>
131 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)