Formulier in javascripy

Status
Niet open voor verdere reacties.

Delicmaster

Nieuwe gebruiker
Lid geworden
3 jul 2011
Berichten
4
# Geplaatst: 3*Jul*2011*12:54
Quote Verander

Hallo allemaal
Ik ben bezig met een script maat kom er niet meer uit!
Het. Is best moeilijk denk ik zo !

Gebruikers moeten namelijk een prijs ingeven, en het javascriptje moet realtime laten zien hoeveel "links" je ervoor terugkrijgt

Het updaten lukt al wel in een input form.. Maar ik wil dat hij letterlijk tekst update op scherm zonder input form

Als dit lukt, is het dan ook mogenlijk deZe gegevens te automatiseren voor ideal en paypal
 
Dan moet je gebruik maken van een <div> en "innerHTML" zoals in dit voorbeeldje:
HTML:
<html>                                                                                                   
<head>
<title>Bereken</title>
<script type="text/javascript">
function bereken(prijs)
{
        document.getElementById('uitkomst').innerHTML = prijs * 10;
}
</script>
</head>
<body>
<input type="text" name="prijs" onkeyup="bereken(this.value)"> Prijs<br>
<div id="uitkomst"></div>
</body>
</html>

Het antwoord op je tweede vraag weet ik niet. Wel moet je daar mee oppassen. Javascript draait op de computer van de bezoeker, hierdoor kan de bezoeker mogelijk de zaak oplichten.
 
Eh, ja, maar er speelt mee dat bezoekers waarschijnlijk prijzen met komma's gaan invullen als het geen hele €uri zijn.

En javascript kan niet met komma's rekenen, want javascript gebruikt de Amerikaanse notering voor getallen, waarin punten en komma's precies omgekeerd zijn. :confused:
  • Voor het oplossen van dit probleem: zie deze draad. Diverse struikelblokken onderweg, en gaandeweg ook een aantal foutcorrecties toegepast.
Met vriendelijke groet,
CSShunter
 
Heee

Dat topic word ik helemaal niet wijs van haha

Opzich is het niet erg, dat mensen een comma invullen tog? Of heeft dat concequenties Miss voor een ideal form?

Maar kan je wel iets maken dat het gewoon na de comma afrond naar boven of beneden. ??
 
Javascript Code:
1
2
3
4
5
var puntGetal;
function kommaNaarPunt(kommaString){
* * var puntString = kommaString.replace(',','.');
* * puntGetal = parseFloat(puntString);
}


Als ik zoiets invul dan moet het tog ook werken ?

Ps hoe krijg ik dan afgerond dat was me vraag
 
Heee

Dat topic word ik helemaal niet wijs van haha

Opzich is het niet erg, dat mensen een comma invullen tog? Of heeft dat concequenties Miss voor een ideal form?

Maar kan je wel iets maken dat het gewoon na de comma afrond naar boven of beneden. ??
Punt is dat javascript aanneemt dat voor decimalen punten worden gebruikt, geen comma's (dit is in het grootste deel van de wereld namelijk de standaard). Als het een comma ziet zal het aanneemen dat het om tekst gaat en tekst kun je niet vermenigvuldigen. Om dat te ondervangen zou je natuurlijk twee input venstertjes kunnen gebruiken, één voor en één na de 'comma'.

Ik begrijp trouwens niet wat je nu precies met ideal en paypal wilt doen.
 
@Naarling:
Ha, dat was een mooi gemikte kruispost!
Het maken van twee input-veldjes is inderdaad een alternatief.

@Delicmaster:
Als je met één input-veld wilt werken, moet er nog het één en ander gebeuren. *)
Ik begin maar even met de originele code van Supersnail:
  • bereken-ori.htm
  • (wel even valid html van gemaakt)
  • Bij invullen van een getal met komma komt er "NaN" (Not a Number).
Van string naar getal gemaakt:
  • bereken-nw1.htm
  • De uitkomst is niet afgerond op 2 cijfers (invullen van 12,79999 geeft 127.9999).
  • In de uitkomst staat nog een punt i.p.v. komma.
Afronding verzorgd:
Terug van punt naar komma in de uitkomst:
Maar er is nog meer te doen. Bezoekers kunnen letters i.p.v. cijfers invullen, of een combi van cijfers en andere tekens. Dan gaat het goed fout!
(probeer 12x9,7 in te vullen in bereken-nw3.htm, of € 5,00). Hier moet een "reguliere expressie" aan te pas komen.
Met alleen cijfers of komma als toegestane tekens:
Maar we zijn er nog niet. Mensen kunnen zich ook bedenken, en tijdens het invullen met de backspace alles wissen. Dan kom er "NaN" in de uitkomst te staan i.p.v. een lege uitkomst.
Met backspace-correctie:
Er zijn vast nog wel andere gevallen, die ik over het hoofd heb gezien. (ja: bv. twee keer een komma in het invoerveld geeft ook krasse resultaten ;) )

Terwijl het toch z'n eenvoudig sommetje lijkt, wil het javascript op deze manier aardig groeien als je alle fouten e.d. van de bezoekers wilt uitsluiten. :P

En als het om echt geld gaat, is dat natuurlijk wel belangrijk.

Nog niet in het bovenstaande: veiligheidsmaatregelen om geen injecties met malware-script in het invoervakje te kunnen krijgen. Want rekensommetjes laten maken op de pc van de bezoeker is nog wat anders dan toestaan dat de resultaten daarvan via een <form> naar jouw server hobbelen...
Vraag is of dat überhaupt wel veilig met javascript kan, maar daar ben ik niet deskundig in.

Met vriendelijke groet,
CSShunter
____________
*) Voor twee veldjes moeten trouwens ook diverse verzekeringen tegen verkeerd invullen afgesloten worden.

{edit}
O, nog eentje. mensen kunnen een bedrag inplakken i.p.v. intikken in het invoerveld, en dan gebeurt er niets. Met een onblur erbij vindt de berekening plaats zodra je ergens anders op de pagina klikt: bereken-nw6.htm
{/edit}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan