[javascript]limieten stellen aan een getal

Pagina: 1
Acties:

  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 10:51
Ik loop (weer) tegen een probleempje aan. Ik wil graag een limiet stellen aan een getal dat in een invoerveld staat. Dit heb ik voor elkaar gekregen, maar niet precies:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<html>
<body>
<table>
<form name="labwaarden">
<tr><td>Magnesium:</td><td><input type="text" name="magnesium1" size="4" maxlength="4" /></td><td><input type="text" name="magnesium2" size="4" maxlength="4" /><td><input type="text" name="magnesium3" size="4" maxlength="4" /></td><td><input type="text" name="magnesium4" size="4" maxlength="4" /></td></td></tr>
<tr><td>Kalium:</td><td><input type="text" name="kalium1" size="4" maxlength="4" /></td><td><input type="text" name="kalium2" size="4" maxlength="4" /><td><input type="text" name="magnesium3" size="4" maxlength="4" /></td><td><input type="text" name="magnesium4" size="4" maxlength="4" /></td></td></tr>
<tr><td><input type="button" name="controle" value="Controleer" />
</form>
</table></td></tr>
</table>
<script language=javascript>
a = "Magnesium Accoord"
b = "Kalium Accoord"
c = "Verlaagd"
d = "Verhoogd"
e = "Niet bepaald"
document.labwaarden.controle.onclick = function () 
{if (document.labwaarden.magnesium1.value/1 >= 0.65 && document.labwaarden.magnesium1.value/1 <= 1.05) document.labwaarden.magnesium2.value = document.write(a);
if (document.labwaarden.magnesium1.value/1 > 0 && document.labwaarden.magnesium1.value/1 < 0.65) document.labwaarden.magnesium2.value = document.write(c);
if (document.labwaarden.magnesium1.value/1 > 1.05) document.write(d)
else document.write (e)
if (document.labwaarden.kalium1.value/1 >= 0.65 && document.labwaarden.kalium1.value/1 <= 1.05) document.labwaarden.kalium2.value = document.write(b);
if (document.labwaarden.kalium1.value/1 > 0 && document.labwaarden.magnesium1.value/1 < 0.65) document.labwaarden.kalium2.value = document.write(c);
if (document.labwaarden.kalium1.value/1 > 1.05) document.write(d)}
</script> 
</body>
</html>

Als dit getest wordt krijg ik prima een waarde, maar deze wordt geladen in een nieuwe pagina. Deze wil ik in document.labwaarden.magnesium2.value hebben staan. Kan iemand mij misschien helpen hoe ik dit kan laten doen? En het lijkt mij dat dit niet de meest elegante oplossing is (al werkt het wel). Klopt dit, of kun je dit normaal gesproken ook anders opschrijven? En hoe kan ik ervoor zorgen dat beide stoffen (magnesium en kalium) gecontroleerd worden? Nu krijg ik nl. al een antwoord voor alleen magnesium.

En nog iets: Hoe kan ik een getal met een komma invoeren en dat het toch werkt? Is het mogelijk om de komma te vervangen door een punt en zo een goed getal te genereren? Degene die het script moeten gebruiken zullen nl. regelmatig komma doen i.p.v. punt (gok ik)

[ Voor 19% gewijzigd door Paultje3181 op 07-12-2006 14:39 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Zoiets:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<input type="button" name="controle" value="Controleer" onclick="checkForm(this.form)">
...
<script type="text/javascript">
function checkForm(form)
{
    var waarde = parseFloat(form.elements['magnesium1'].value);
    if (waarde > 1.05)
        form.elements['magnesium2'].value = 'Verhoogd';
    else if (waarde >= 0.65)
        form.elements['magnesium2'].value = 'Magnesium Accoord';
    else
        form.elements['magnesium2'].value = 'Verlaagd';
}
</script>

En ik weet niet welke referenties je gebruikt om javascript en HTML te leren maar ik zou je toch willen aanraden eens naar betere referenties te gaan zoeken of een boek te kopen want het lijkt echt nergens op (nofi).
En nog iets: Hoe kan ik een getal met een komma invoeren en dat het toch werkt? Is het mogelijk om de komma te vervangen door een punt en zo een goed getal te genereren? Degene die het script moeten gebruiken zullen nl. regelmatig komma doen i.p.v. punt (gok ik)
String.replace()

[ Voor 20% gewijzigd door crisp op 07-12-2006 14:43 ]

Intentionally left blank


Verwijderd

JavaScript:
1
document.labwaarden.magnesium2.value = a;


JavaScript:
1
num = num.replace(",", ".");

Verwijderd

Kan het misschien ook liggen aan het feit dat je <inputs> in de rij kalium, dezelfde naam hebben als die in de rij voor Magnesium?

edit:

Ik zie dat je die waarden nu verder niet gebruikt, misschien wel iets om ff aan te passen ;)

[ Voor 30% gewijzigd door Verwijderd op 07-12-2006 14:57 ]


  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 10:51
Verwijderd schreef op donderdag 07 december 2006 @ 14:55:
Kan het misschien ook liggen aan het feit dat je <inputs> in de rij kalium, dezelfde naam hebben als die in de rij voor Magnesium?

edit:
Ik zie dat je die waarden nu verder niet gebruikt, misschien wel iets om ff aan te passen ;)
Dat geldt alleen voor 3 en 4. Maar die hoef ik nu niet te gebruiken, dus dat is geen probleem.

Ik probeer mezelf javascript te leren via o.a. http://www.voorbeginners.info/javascript/ en andere google pagina's. Ik probeer het alleen zoveel mogelijk zelf te bedenken, want van scripts overtypen leer je niks. Dus vandaar dat ik het wellicht nogal brak opschrijf...

Ik heb nu deze code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<script language=javascript>
a = "Verlaagd"
b = "Verhoogd"
c = "Niet bepaald"
d = "Magnesium Accoord"
e = "Kalium Accoord" 
function checkForm(form) 
{ 
    var magnesium = parseFloat(form.elements['magnesium1'].value); 
    if (magnesium < 0.65) 
        form.elements['magnesium2'].value = a; 
    else if (magnesium >= 0.65 && magnesium <= 1.05) 
        form.elements['magnesium2'].value = d; 
    else if (magnesium > 1.05)
        form.elements['magnesium2'].value = b; 
    else 
    form.elements['magnesium2'].value = c;


    var kalium = parseFloat(form.elements['kalium1'].value); 
    if (kalium < 3.5 && magnesium != 0) 
        form.elements['kalium2'].value = a; 
    else if (kalium >= 3.5 && kalium <= 5.1) 
        form.elements['kalium2'].value = e; 
    else if (kalium > 5.1)
    form.elements['kalium2'].value = b;
    else 
        form.elements['kalium2'].value = c; 
} 
</script>

en dit doet wat ik wil. Maar hoe kan ik dan die komma veranderen? Want num = num.replace geeft een foutcode dat ie num niet kent.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:04

TeeDee

CQB 241

en als je
JavaScript:
1
magnesium = magnesium.replace(',','.')

nu eens gebruikt?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 10:51
TeeDee schreef op donderdag 07 december 2006 @ 15:38:
en als je
JavaScript:
1
magnesium = magnesium.replace(',','.')

nu eens gebruikt?
Op de een of andere manier werkt het gewoon niet...
Binnen dat gedeelte met die variabelen (Dank Crisp!) kan wel gewoon , en . gebruikt worden door elkaar, maar in een ander gedeelte niet:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<html><body>
<form name="milliliters">
<table border="1" width="100%">
<tr><td width="20%"><b>Chargenummer</b></td><td><b>Preparaat</b></td><td><b>Aantal ml</b></td></tr>
<tr><td>&nbsp</td><td>NuTRIflex Lipid Special</td><td><input type="text" name="nutriflex" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>KCl inj. 10 ml = 20 mmol K, 20 mmol Cl</td><td><input type="text" name="kcl" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>NaCl inj. 10 ml = 50 mmol Na, 50 mmol Cl</td><td><input type="text" name="nacl" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>K<sub>2</sub>HPO<sub>4</sub> inj. 10 ml = 20 mmol K, 10 ml = 10 mmol PO<sub>4</sub></f></td><td><input type="text" name="fosfaat" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>Ca Sandoz 10 ml = 2,25 mmol Ca</td><td><input type="text" name="calcium" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>Cernevit inj</td><td><input type="text" name="cernevit" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>MgSO<sub>4</sub> inj. 10 ml = 4,06 mmol</td><td><input type="text" name="magnesium" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>Addamel N inj. 10 ml</td><td><input type="text" name="addamel" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>Aqua ad Injectabilia</td><td><input type="text" name="aqua" size="4" maxlength="4" /></td></tr></table>
</form></p>
<form name="button">
<input type="button" name="controle" value="Controleer volume" />
</form>
<form name="resultaatml">
<p><b>Totaal Volume: </b><input type="text" name="resultaat" maxlength=4/></p>
</form>
<script language=javascript>
document.button.controle.onclick = function () 
{
document.resultaatml.resultaat.value = 
(document.milliliters.nutriflex.value/1 + document.milliliters.kcl.value/1 + document.milliliters.nacl.value/1 + document.milliliters.fosfaat.value/1 + document.milliliters.calcium.value/1 + document.milliliters.magnesium.value/1 + document.milliliters.addamel.value/1 + document.milliliters.aqua.value/1)}
</script>
</body></html>

Hier krijg ik NaN als resultaat bij het invoeren van een getal met een komma. Waarom is dit zo? Door die /1 interpreteerd javascript het toch als getal? Waarom snapt ie dat dan niet? En waar moet ik dan die sting.replace (",", ".") neerzetten zodat ie het over de hele pagina snapt?

  • Cloud
  • Registratie: November 2001
  • Laatst online: 03-11 10:25

Cloud

FP ProMod

Ex-moderatie mobster

Om te beginnen zou ik een andere bron nemen, te weten W3Schools. Daar staan genoeg voorbeelden voor allerhande situaties die je tegenkomt en tegen gaat komen. Daarnaast leren ze je een veel nettere vorm van scripten dan datgeen wat er nu staat NOFI.

En over string replace:
HTML:
1
2
var str="Visit Microsoft!"
document.write(str.replace(/Microsoft/,"W3Schools"))

Rechtstreeks van de W3Schools site overigens. :)

edit:
NaN geeft hij terug als hij vindt dat het geen getal is (NaN = Not a Number). Hij ziet "0,5" dus als een string in plaats van een getal. Om dit te voorkomen gebruik je zoals crisp ook al voorstelde:
HTML:
1
2
3
4
5
var waarde = parseFloat("0,5"); 

// of

var waarde = parseFloat(form.elements['magnesium1'].value);

[ Voor 27% gewijzigd door Cloud op 08-12-2006 11:59 ]

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:04

TeeDee

CQB 241

Sorry, maar je doet het nu weer systematisch 'fout'.

Even een opsomming:
- Je gebruikt voor 'elke scheet' een form. Dat kan toch ook wel in 1 form?
- Je javascript code is op z'n zachtst gezegd: een rommel
- Kijk nog eens naar de code van crisp, en vergelijk die met je eigen JS code

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 10:51
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<html>
<head>
<title>TPV</title>
<script type="text/javascript">
function checkForm(milliliters)
{
nutriflex = parseFloat(milliliters.elements['nutriflex'].value); 
kcl = parseFloat(milliliters.elements['kcl'].value); 
nacl = parseFloat(milliliters.elements['nacl'].value); 
fosfaat = parseFloat(milliliters.elements['fosfaat'].value); 
calcium = parseFloat(milliliters.elements['calcium'].value); 
cernevit = parseFloat(milliliters.elements['cernevit'].value); 
aqua = parseFloat(milliliters.elements['aqua'].value); 
magnesium = parseFloat(milliliters.elements['magnesium'].value); 
addamel = parseFloat(milliliters.elements['addamel'].value); 
resultaat = parseFloat(milliliters.elements['resultaat'].value);
document.write(nutriflex + kcl + nacl + fosfaat + calcium + cernevit + magnesium + addamel + aqua)
}
</script>
</head>
<body>
<form name="milliliters">
<table border="1" width="100%">
<tr><td width="20%"><b>Chargenummer</b></td><td><b>Preparaat</b></td><td><b>Aantal ml</b></td></tr>
<tr><td>&nbsp</td><td>NuTRIflex Lipid Special</td><td><input type="text" name="nutriflex" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>KCl inj. 10 ml = 20 mmol K, 20 mmol Cl</td><td><input type="text" name="kcl" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>NaCl inj. 10 ml = 50 mmol Na, 50 mmol Cl</td><td><input type="text" name="nacl" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>K<sub>2</sub>HPO<sub>4</sub> inj. 10 ml = 20 mmol K, 10 ml = 10 mmol PO<sub>4</sub></td><td><input type="text" name="fosfaat" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>Ca Sandoz 10 ml = 2,25 mmol Ca</td><td><input type="text" name="calcium" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>Cernevit inj</td><td><input type="text" name="cernevit" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>MgSO<sub>4</sub> inj. 10 ml = 4,06 mmol</td><td><input type="text" name="magnesium" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>Addamel N inj. 10 ml</td><td><input type="text" name="addamel" size="4" maxlength="4" /></td></tr>
<tr><td>&nbsp</td><td>Aqua ad Injectabilia</td><td><input type="text" name="aqua" size="4" maxlength="4" /></td></tr></table>
<input type="button" name="controle" value="Controleer volume" onClick="checkForm(this.form)" />
<p><b>Totaal Volume: </b><input type="text" name="resultaat" maxlength=4/></p>
</form>
</body></html>

Ik heb nu een deel omgeschreven naar variabelen, maar ik krijg als antwoord NaN, behalve als ik alles in vul. Dat is dus niet de bedoeling. Wat doe ik nou verkeerd? Ik heb de variabelen zonder var (dus dat ze niet perse gedeclareerd hoeven worden). En ook werkt de komma nog niet, terwijl die bij crisp wel werkt. Voor mijn idee heb ik toch echt alles hetzelfde gedaan.

Ik heb het nu nog als document.write geschreven, maar hij moet dus in "resultaat" geplaatst worden (als document.milliliters.resultaat.value)

Maar wat doet form.elements['magnesium'].value nou precies? Want ik snap het gewoon niet precies. Waarom moet ik checkForm(this.form) als functie hebben? Of waar kan ik het duidelijk vinden? Want W3C is gewoon niet uitgebreid genoeg voor mij

  • Cloud
  • Registratie: November 2001
  • Laatst online: 03-11 10:25

Cloud

FP ProMod

Ex-moderatie mobster

Paultje3181 schreef op vrijdag 08 december 2006 @ 14:04:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
nutriflex = parseFloat(milliliters.elements['nutriflex'].value); 
kcl = parseFloat(milliliters.elements['kcl'].value); 
nacl = parseFloat(milliliters.elements['nacl'].value); 
fosfaat = parseFloat(milliliters.elements['fosfaat'].value); 
calcium = parseFloat(milliliters.elements['calcium'].value); 
cernevit = parseFloat(milliliters.elements['cernevit'].value); 
aqua = parseFloat(milliliters.elements['aqua'].value); 
magnesium = parseFloat(milliliters.elements['magnesium'].value); 
addamel = parseFloat(milliliters.elements['addamel'].value); 
resultaat = parseFloat(milliliters.elements['resultaat'].value);
document.write(nutriflex + kcl + nacl + fosfaat + calcium + cernevit + magnesium + addamel + aqua)
}

Ik heb nu een deel omgeschreven naar variabelen, maar ik krijg als antwoord NaN, behalve als ik alles in vul. Dat is dus niet de bedoeling. Wat doe ik nou verkeerd? Ik heb de variabelen zonder var (dus dat ze niet perse gedeclareerd hoeven worden). En ook werkt de komma nog niet, terwijl die bij crisp wel werkt. Voor mijn idee heb ik toch echt alles hetzelfde gedaan.
Dit komt omdat je alles laat optellen door de + te gebruiken. Omdat je parseFloat gebruikt maakt hij er allemaal getallen van. Als je dan 1 van die getallen niet invult krijgt dat getal geen waarde en wordt ook de totaalsom NaN. Als je dit zo wilt doen kun je het beste het volgende gebruiken:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
nutriflex = parseFloat(milliliters.elements['nutriflex'].value); 
kcl = parseFloat(milliliters.elements['kcl'].value); 
nacl = parseFloat(milliliters.elements['nacl'].value); 
fosfaat = parseFloat(milliliters.elements['fosfaat'].value); 
calcium = parseFloat(milliliters.elements['calcium'].value); 
cernevit = parseFloat(milliliters.elements['cernevit'].value); 
aqua = parseFloat(milliliters.elements['aqua'].value); 
magnesium = parseFloat(milliliters.elements['magnesium'].value); 
addamel = parseFloat(milliliters.elements['addamel'].value); 
resultaat = parseFloat(milliliters.elements['resultaat'].value);
document.write(nutriflex + " " + kcl + " " + nacl + " "+ fosfaat + " " + calcium + " " + cernevit + " " + magnesium + " " + addamel + " " + aqua)
}

Dat werkt denk ik wel :) Het is zeker geen elegante en nette oplossing maar het moet je wel in de juiste richting sturen.
edit:
dit werkt overigens, omdat Javascript er door de + " " steeds een string van maakt ipv een getal.

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 10:51
dit werkt niet:
hij gaat nu gewoon getallen achter elkaar zetten en niet optellen omdat het strings zijn.
Dus daar heb ik helemaal niks aan. Dat is dus precies wat ik niet wil...

edit:
Het losstaand invullen heb ik opgelost door gebruik te maken van default waarden van 0, dat werkt prima. Maar als ik er een komma inzet (bijv. 1,5) geeft ie steeds als antwoord 1.

Waar kan dit nou aan liggen? Want het is wel een nummer en geen string? Ik snap het gewoon echt niet wat er nu anders is aan mijn variabelen dan aan die van Crisp

[ Voor 49% gewijzigd door Paultje3181 op 08-12-2006 15:18 ]


  • Cloud
  • Registratie: November 2001
  • Laatst online: 03-11 10:25

Cloud

FP ProMod

Ex-moderatie mobster

Paultje3181 schreef op vrijdag 08 december 2006 @ 14:41:
dit werkt niet:
hij gaat nu gewoon getallen achter elkaar zetten en niet optellen omdat het strings zijn.
Dus daar heb ik helemaal niks aan. Dat is dus precies wat ik niet wil...
Dat snap ik ook wel maar zo kun je in elk geval zien wát er mis gaat. Zie het als debug informatie, wat je zelf ook al stelde.
edit:
Het losstaand invullen heb ik opgelost door gebruik te maken van default waarden van 0, dat werkt prima. Maar als ik er een komma inzet (bijv. 1,5) geeft ie steeds als antwoord 1.

Waar kan dit nou aan liggen? Want het is wel een nummer en geen string? Ik snap het gewoon echt niet wat er nu anders is aan mijn variabelen dan aan die van Crisp
Dat is in elk geval al een stuk beter dan eerst. Default waarden zijn de way to go. Nu gaat het waarschijnlijk goed als je 1.5 gebruikt, maar fout als je 1,5 gebruikt, of niet? ;)

Neem dan ook de al eerder gestelde opmerkingen ter harte, en vervang eventuele komma's door punten. Anders ziet Javascript het inderdaad niet als getallen. Het vervangen is nu al zo vaak uitgelegd, en er staat ook een goed voorbeeld op de W3C site. Daar moet je echt zelf wel uit komen, ik wil ook niet alles voor hoeven kauwen.

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 10:51
Ik ben een tijdje bezig geweest met die string replace en heb dit in mijn <head> staan.
code:
1
2
3
4
5
6
<head>
<script type=text/javascript>
var str=","
document.write(str.replace(/,/g,"."))
</script>
</head>

maar dat werkt niet met tekst in de body. Volgens mij heb ik toch echt precies gevolgd wat daar staat en het werkt ook wel als het niet in de head staat, maar ik wil het juist over de hele pagina veranderen en ook dat het werkt als het later ingevuld wordt (ook al wordt de head in het begin geladen)

Ik heb dus al een hoop geprobeerd, maar ik snap het echt niet meer...

  • Cloud
  • Registratie: November 2001
  • Laatst online: 03-11 10:25

Cloud

FP ProMod

Ex-moderatie mobster

Paultje3181 schreef op donderdag 14 december 2006 @ 11:34:
Ik heb dus al een hoop geprobeerd, maar ik snap het echt niet meer...
Zo gaat dat inderdaad niet werken nee. Nu probeer je alle , naar . te veranderen in het document, terwijl er nog niet eens iets ingevuld is. ;) Je kunt die replace pas gebruiken nádat er iets ingevuld is, en die functie dus aangeroepen wordt. Wat je moet doen is voor élke waarde in die checkForm() die str.replace gebruiken. Dus iets in de trend van:
code:
1
2
3
var a = milliliters.elements['addamel'].value;
a = a.replace(',', '.');
a = parseFloat(a);

Let op: dit is waarschijnlijk geen compleet werkende code, maar hiermee moet het duidelijk zijn wat ik bedoel. Dit herhaal je dus voor elke waarde die je uit het form haalt. :)

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 10:51
kun je dan niet een vergelijkbaar iets in de <head> zetten? En dan op de onclick van de knop eerst die aanroepen en daarna de functie uitvoeren?
Maar hoe kan ik dan die variabele oproepen om die als string te gebruiken?

het lijkt me namelijk een beetje raar als je voor iedere keer dat je een komma ergens kan tegenkomen zo'n script moet schrijven. Het lijkt mij juist dat je dit met variabelen moet kunnen oplossen...
Dus:
code:
1
2
3
4
5
6
7
8
9
<head>
<script type="text/javascript">
function kommaverandering ()
{
var str=","
document.write(str.replace(/,/,"."))
}
</script>
</head>

en
code:
1
2
3
4
5
6
7
8
<script type="text/javascript">
function bla ()
{
kommaverandering ();
functie ();
}
</script>
document.button.onclick = bla ()

Of zoiets dergelijks. Maar wat moet er achter str staan om steeds een goede input te krijgen voor str.replace?

[ Voor 33% gewijzigd door Paultje3181 op 14-12-2006 14:54 ]


Verwijderd

Dit is echt basis programmeren. Verdiep je eens in een JavaScript boek/tutorial, dat gaat je een hoop tijd schelen. ;)

Je stopt een input in de functie, de functie behandelde de input en geeft de output terug.

JavaScript:
1
2
3
4
function kommaNaarPunt(waarde)
{
  return waarde.replace(",", ".");
}

  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 10:51
ik heb de hele w3school tutorial en de tutorial van voorbeginners.nl goed doorgenomen, maar het blijft gewoon onduidelijk...
wat je hier schrijft heb ik ook al bedacht, maar hoe kan ik waarde nu laten veranderen per input field van het form? Want dat is het probleem, dat dat nergens beschreven staat...

  • Cloud
  • Registratie: November 2001
  • Laatst online: 03-11 10:25

Cloud

FP ProMod

Ex-moderatie mobster

Verwijderd schreef op donderdag 14 december 2006 @ 15:12:
Dit is echt basis programmeren. Verdiep je eens in een JavaScript boek/tutorial, dat gaat je een hoop tijd schelen. ;)

Je stopt een input in de functie, de functie behandelde de input en geeft de output terug.
Inderdaad ja. Dat probeer ik de TS ook duidelijk te maken. Je geeft het antwoord nu wel op een zilveren schaaltje ;) Op zich aardig van je, maar zoals je zelf ook al stelt is dat niet wat de TS nodig heeft.

Paultje
Je zou inderdaad eens wat basis tutorials programmeren en dergelijke door moeten nemen. Vooral op het gebied van HTML/CSS en Javascript dan. Dat gaat je echt schelen. Want nu begrijp je eigenlijk geheel niet hoe Javascript werkt. Je copy/paste oplossingen die door anderen aangedragen worden terwijl je niet eens weet wat ze doen (bot gezegd, NOFI).. Daar leer je m.i. helemaal niets van.

Nogmaals, ga eens wat tutorials doornemen op W3Schools, en neem die door vanaf het begin. :)
Paultje3181 schreef op donderdag 14 december 2006 @ 15:48:
ik heb de hele w3school tutorial en de tutorial van voorbeginners.nl goed doorgenomen, maar het blijft gewoon onduidelijk...
wat je hier schrijft heb ik ook al bedacht, maar hoe kan ik waarde nu laten veranderen per input field van het form? Want dat is het probleem, dat dat nergens beschreven staat...
Dat staat overal beschreven maar jij begrijpt het nog niet. Wat F12 je daar gegeven heeft is een Functie. Een functie daar stop je iets in, en daar rolt iets uit. Net als parseFloat(). Daar stop je een string in, en daar komt een numerieke waarde uit. dus wat je zou moeten krijgen is:
code:
1
var a = parseFloat(kommaNaarPunt(milliliters.elements['addamel'].value));

En nogmaals, dit doe je voor ieder invoerveld. Hoe 'onnozel' dat ook lijkt in jouw ogen. Maar ik maak het je nu wel overdreven makkelijk.

Nu voor de laatste keer, doe wat tutorials die gaan over programmeren zelf, ongeacht de techniek. Blijkbaar begrijp je de beginselen van programmeren an sich niet..

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana

Pagina: 1