Punt en Komma

Status
Niet open voor verdere reacties.

RonaldGJ

Gebruiker
Lid geworden
28 apr 2007
Berichten
419
Beste mensen,

Ik heb het web al wat afgespeurd, maar kom niet op de oplossing die voor mij gewenst is. Ik wil graag hebben als ik in een textfield op de punt(.)-key druk, dat er dan een komma in mijn textfield komt te staan.
Dit is wat ik tot nu toe heb. Heb al wat getest en het werkt, dus daar geen problemen mee;).
Ik heb dit op een 'onkeypress' event, omdat er nog meer bij moet komen. Dus ik zou ook graag hebben dat dit kan onder het onkeypress-event.

[JS]
function checkField(e){
var unicode = e.charCode ? e.charCode : e.keyCode;
if(unicode == 46){
HIER MOET HIJ DUS EEN KOMMA AFGEVEN;
Komma = 44;
}
}
[/JS]

Ik hoop dat iemand mij hiermee kan helpen!

Gr. Ronald!:)
 
stel punt gelijk aan comma

weet niet veel van programeren maar java-gezien kan je toch zeggen dat een punt een comma is ?
 
Ja maar daar gaat het niet om. Ik wil duidelijk hebben in het textfield dat er een komma staat en niet een punt. Ik wil niet dat er punten worden ingevoerd en maar 1 komma. Het script om te controleren of er al een komma is heb ik al.

Maar het gaat mij er dus om dat als je een punt toetst, dat er dan direct een komma in het textfield komt te staan. Maar ik ben bang dat de e.charCode read-only is.

Iemand anders?

Gr. Ronald!:)
 
[JS]
function checkField(e){
var unicode = e.charCode ? e.charCode : e.keyCode;
if(unicode == 46){
document.getElementById('idvanjetextfield').value += ','; // vervang idvanjetextfield door het ID van je textfield ;)
}
return false; // zorg dat er niet ook nog een punt wordt ingevoegd.
}
[/JS]

Alleen verschijnt de komma nu wel altijd aan het einde van je veld. Als ie altijd op de plek van de cursor moet verschijnen, moet je het even zeggen, dan kunnen we nog even verder kijken.
 
Ja dit had ik dus ook al bedacht:rolleyes:, maar hij moet inderdaad op de plek van de cursor komen. Heb je daar al een ideetje voor!

Bedankt alvast.

Gr. Ronald!:)
 
Ik denk dat ik wel iets makkelijkers weet:

[JS]
function checkField(e){
var unicode = e.charCode ? e.charCode : e.keyCode;
if(unicode == 46){

var sText = document.getElementById('idvanjeveld').value;
while ( sText.indexOf('.') != -1 ) {

sText.replace('.', ',');

}

document.getElementById('idvanjeveld').value = sText;

}
}
[/JS]

Óf misschien nog makkelijker:

[JS]
function checkField(e){
var unicode = e.charCode ? e.charCode : e.keyCode;
if(unicode == 46){

var sText = document.getElementById('idvanjeveld').value;
var aText = sText.split('.');
sText = aText.join(',');

}
}
[/JS]

Maar deze zou je eigenlijk moeten plaatsen onder het onkeyup event.
 
He!

Ik heb hem dan onder het onkeypress-event, maar dan doet hij het niet goed. Als ik 1 punt toets is er niks aan de hand, maar bij de tweede loopt hij vast!

Kijk het gaat erom, het is een textfield waar een prijs ingetoetst moet worden. Ik heb al dat als je een komma toetst en dan nog een, dat ie het dan niet meer doet. Maar nu wil ik dus dat ie de punt direct omzet in een komma. Anders moet je onder het onkeyup-event weer een functie gaan zetten, wat ik niet zo handig vind.

Opzich kan het natuurlijk ook wel alleen met de komma, maar als je NumPad hebt, daar zit een punt en veel mensen gebruiken dat, dus dan is het lastig als je de punt niet kunt gebruiken!

Dus heb je misschien nog een ander idee hiervoor?

Gr. Ronald!:)
 
het is een textfield waar een prijs ingetoetst moet worden
Erik's server is momenteel uit de lucht, dus ik kan het voorbeeldje niet bekijken.
Maar wel een ander idee:
  • Problemen met punten en/of komma's prettig omzeilen, door twee tekstvakjes te maken: eerste voor de hele Euri, tweede voor de Euro-dubbeltjes en centen. En dan bij binnenkomst van de twee data deze bij elkaar op laten tellen. Met uiteraard een factor 1/100 voor de centjes.
Net zoals de banken dat in hun invul-formulieren doen. Ben je er meteen van af, dat mensen misschien vergeten een komma/punt met de centen op te geven, en alleen de hele Euri invullen. Of: per abuis 3 cijfers achter de komma invullen, enz. Het tweede tekstvakje kan je zó maken, dat er alleen maar 2 getallen inpassen, bij een totaal-vakje gaat dat niet op.

Why not? :)
Met vriendelijke groet,
CSShunter

[edit]Nu zie ik waarom de server van Erik bij mij "uit de lucht" was... :o
Er stond geen punt of komma in de link, maar een slash die ik even niet zag. Het ontbrekend puntje! :p [/edit]
 
Laatst bewerkt:
Ik heb het script van Erik getest, maar helaas werkt het niet helemaal lekker! Hij zet de komma wel op de goede plek, maar daarna schiet de cursor naar achter.
Ik vind het idee van csshunter eigenlijk wel een goed oplossing. Ik had er zo snel niet aan gedacht, maar ik denk dat ik dit maar gebruik. Inderdaad weinig gezeur met alles!

Bedankt jongens!

Gr. Ronald!:)
 
Nog een gebruikersvriendelijk tipje aan de zijlijn:
Standaard komt een tekstvak op een minimale systeemletter uit, wat voor veel mensen veel te klein is om lekker te kunnen tikken/lezen. In Internet Explorer kan dat niet beïnvloed worden met bv. Beeld > Tekengrootte > Extra groot (blijft even klein).
Maar:
input { font-size: 1.2em; }
is ook mogelijk > dat kan de bezoeker zelf wel beïnvloeden via lettergroote-instelling.

De default-grootte kan je dan meteen wat groter maken.
En bij getallen boven de 1000 mag je geen fouten tikken! :rolleyes:

[Edit]Door dit te tikken, schiet me te binnen: mensen mogen géén puntje voor de duizendtallen intikken, dat rekent niet zo handig, en dat moet er dus uit-gescript worden (en is ook niet combineerbaar met een in een komma veranderd puntje voor de centen!).

Tenzij je onder de 1000 blijft: de hele veranderingstaktiek van puntjes naar komma's gaat dus helemaal niet op!
€ 50.000 zou € 50,00 worden > dat gaat nog harder dan de IJslandbank! :p [/edit]
 
Laatst bewerkt:
[edit]Nu zie ik waarom de server van Erik bij mij "uit de lucht" was... :o
Er stond geen punt of komma in de link, maar een slash die ik even niet zag. Het ontbrekend puntje! :p [/edit]

Ah, ik heb het aangepast :thumb::D

Ik heb het script van Erik getest, maar helaas werkt het niet helemaal lekker! Hij zet de komma wel op de goede plek, maar daarna schiet de cursor naar achter.

Hmm, dat had ik nog helemaal niet gemerkt... Grondig getest hè? ;) Maar een oplossing ervoor zie ik zo ook niet.
 
Ik heb nu gewoon 2 textboxen gemaakt met daartussen een komma. Als je op de punt of de komma toetst springt hij naar het textbox voor de decimalen;). Ik heb wel als je naar een andere textbox gaat, dat hij dan punten bij het getal zet om het duidelijk te maken.
Het lastige is nu wel, je kunt alleen cijfers intikken (en backspace), maar als je er iets in plakt kan dat wel:(.

Weten jullie een manier om op de onblur-event alle karakters te verwijderen, behalve de cijfers en de punt?

Gr. Ronald!:)

PS. Bedankt nog.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan