decimalen achter punt aanvullen

Status
Niet open voor verdere reacties.

wijkkie

Gebruiker
Lid geworden
2 mei 2008
Berichten
10
ik heb een invoerveld waar men een bedrag kan invoeren. Nu heb ik al dat wanneer een 'komma' getypt word er automatisch een 'punt' van gemaakt word.
Nu wil ik alleen nog wanneer men bijvoorbeeld '15' invult on plaats van '15.00' dat die ,00 er automatisch achter geplaatst word.

dit is mijn javascript:

HTML:
<script language="javascript"> 

function replace(entry) 
{ 
out = ","; 
add = "."; 
temp = "" + entry; // temporary holder 

while (temp.indexOf(out)>-1) 
{ 
pos= temp.indexOf(out); 
temp = "" + (temp.substring(0, pos) + add + 
temp.substring((pos + out.length), temp.length)); 
} 
document.form.factuur_bedrag.value = temp; 
} 
</script>

Dit is het invoerveld:

HTML:
<input type=\"text\" name=\"InpBod\"  value=\"0.00\" maxlength=\"50\" style=\"width: 50;\" class=\"contact\" onKeyUp=\"replace(document.form.factuur_bedrag.value);\" >
 
ik heb een invoerveld waar men een bedrag kan invoeren. Nu heb ik al dat wanneer een 'komma' getypt word er automatisch een 'punt' van gemaakt word.
Nu wil ik alleen nog wanneer men bijvoorbeeld '15' invult on plaats van '15.00' dat die ,00 er automatisch achter geplaatst word.

dit is mijn javascript:

HTML:
<script language="javascript"> 

function replace(entry) 
{ 
out = ","; 
add = "."; 
temp = "" + entry; // temporary holder 

while (temp.indexOf(out)>-1) 
{ 
pos= temp.indexOf(out); 
temp = "" + (temp.substring(0, pos) + add + 
temp.substring((pos + out.length), temp.length)); 
} 
document.form.factuur_bedrag.value = temp; 
} 
</script>

Dit is het invoerveld:

HTML:
<input type=\"text\" name=\"InpBod\"  value=\"0.00\" maxlength=\"50\" style=\"width: 50;\" class=\"contact\" onKeyUp=\"replace(document.form.factuur_bedrag.value);\" >

Je moet zelf even kijken hoe je het toe wil passen:

var getal =5;
alert(getal.toFixed(2))


die 2 is dus hoeveel decimalen je wil.

Gr,
Bart
 
iemand dan misschien een idee hoe ik dat in mijn script ga plaatsen?
ben niet zo heel handig met javascript!

Bij voorbaat dank!
 
PHP:
<script language="javascript"> 
 
function replace(entry) 
{ 
   return entry.toFixed(2).toString.replace('.',',');
}
</script>
;)
 
Dit doet hetzelfde als wat ik al had.
Hij geeft niet automatisch de .00 als ik alleen 15 intyp.
 
Je snapt neem ik aan wel dat deze functie slechts een waarde returnt en verder niets aanpast?

Werkt het ook niet als je dit doet:

HTML:
<input type="text" name="InpBod"  value="0.00" maxlength="50" style="width: 50;" class="contact" onblur="this.value=replace(this.value);" >

Overigens, mag je een functie wel replace noemen? Komt replace niet als standaardfunctie voor in JS??
 
Maar ik wil juist wel dat hij iets aanpast!

Namelijk dat die .00 word toegevoegd als men dus bijvoorbeeld alleen 15 typt in plaats van 15.00

Dus hij moet die 15 aanpassen naar 15.00
 
Heb je mijn suggestie ook geprobeerd? (Het deel in HTML-code)
 
@Erik: als je m 'replace' noemt gaat het denk ik wel goed, het is geen (wordt niet aangeroepen als, that is) string-method, en geen keyword. Dus denk dat t wel goed komt, maar voor de zekerheid kan je m mischien beter anders noemen.

Anywho, roundup:
HTML:
<input type="text" name="InpBod"  value="0.00" maxlength="50" style="width: 50;" class="contact" onblur="this.value=doStuff(this.value);" >

<script language="javascript"> 
   function doStuff(entry) 
   {
      return entry.toFixed(2).toString.replace('.',',');
   }
</script>
:thumb:
 
Hmm, begrijpt men mij nu niet?

Alle opties die ik krijg doen allemaal t zelfde. Namelijk de 'komma' vervangen voor een 'punt'!

Maar dat ik automatisch die '.00' krijg heeft nog niemand opgelost.
Is er iemand die wel weet hoe ik dat moet gaan doen?

Thanks
 
Err, jawel. De doStuff functie:
PHP:
   function doStuff(entry) 
   {
      return entry.toFixed(2).toString.replace('.',',');
   }
doet namelijk dit: van het getal maak je een fixed met 2 cijfers achter de comma. Dus, als iemand '15.2152813' intoetst, komt er '15.21' te staan. Als iemand '15' intoetst, komt er '15.00' te staan. De toString.replace() zorgt ervoor dat .00 omgezet wordt naar ,00.

Dat was de bedoeling toch?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan