remopeter Geschrieben 15. August 2005 Teilen Geschrieben 15. August 2005 Hallo Ich möchte in einem Inputfeld des typs text zahlen anzeigen. soweit ist das natürlich kein problem. nun möchte ich aber, dass die tausenderstellen mit hochkommas getrennt werden (nicht: 1000000 sonder: 1'000'000) und das bereits bei der eingabe der zahlen. gibt es ein solches vordefiniertes tag in html oder wie kann ich diese eigenschaft für ein solches textfeld am einfachsten erreichen? gruss, remo Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 15. August 2005 Teilen Geschrieben 15. August 2005 per Javaschript. Bei einem bestimmten Event (Tastendruck) ruft du eine JS-Funktion auf die deine Eingabe prüft...und zwar von hinten nach vorn. Nach jedem 3. Zeichen (vorrausgesetzt es ist ein 4. vorhanden) setzt sie ein Hochkomma (wieder vorrausgesetzt das 4. Zeichen ist nicht bereits ein hochkomma) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
remopeter Geschrieben 15. August 2005 Autor Teilen Geschrieben 15. August 2005 Hat jemand gleich so ein javascript bereit? ich mag nicht das rad nochmals erfinden! würde auch ganz viele, viele merci geben Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 15. August 2005 Teilen Geschrieben 15. August 2005 Hat jemand gleich so ein javascript bereit? ich mag nicht das rad nochmals erfinden! würde auch ganz viele, viele merci geben Faul ? ooo, ich auch grad, obwohl das Skript auf dem Skripte_für _faule_Tage_Ordner liegt ... nene Du, mach was und wir helfen gern bei Problemen... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
remopeter Geschrieben 18. August 2005 Autor Teilen Geschrieben 18. August 2005 hier meine lösung: function hochkomma(field){ str = field.value; str = entferneHochkommas(str); outStr = str; punkt=false; if(isNaN(str)==false){ if(str.length>2){ for(var i=str.length; i>=2 ; i--){ if(str.charAt(i-4)=='.'){ str=str.slice(0,i-1); } } } if(str.length>0){ if(str.charAt(str.length-1)=='.'){ punkt=true; alert("Bitte nur ganze Franken eingeben!") } if(str.charAt(str.length-2)=='.'){ punkt=true; alert("Bitte nur ganze Franken eingeben!") } if(str.charAt(str.length-3)=='.'){ punkt=true; alert("Bitte nur ganze Franken eingeben!") } if(punkt==false){ outStr=setzteHochkommas(str,0); } } }else{ alert("Bitte keine Buchstaben oder Sonderzeichen eingeben!") } field.value = outStr; } function setzteHochkommas(str,offset){ retStr=str; split=""; doit=true; while(str.length>3){ if((offset==1&&str.length>4)||(offset==2&&str.length>5)||(offset==3&&str.length>6)){ split="'"+str.slice(str.length-3-offset,str.length)+split; str=str.slice(0,str.length-3-offset); offset=0; doit=false; } if(offset==0&&doit){ split="'"+str.slice(str.length-3,str.length)+split; str=str.slice(0,str.length-3); doit=true; } else break; } retStr=str+split; return retStr; } function entferneHochkommas(str){ retStr=str; for(var i=0;i<str.length;i++){ if(str.charAt(i)=="'"){ split1=str.slice(0,i); split2=str.slice(i+1,str.length); retStr=split1+split2; retStr=entferneHochkommas(retStr) } } return retStr; } ps: das dürfen auch die faulen brauchen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mkScheller Geschrieben 18. August 2005 Teilen Geschrieben 18. August 2005 @remopeter: wie lange (vorausgesetzt es wurd selbstentwicklet) hastn du dafür gebraucht? @den der das Problem hatte, wenn du dann ein formular absendest, musst da ja wieder umwandeln-wenigstens an einer ecke, also entweder hast du riesige zahlen, wo man das echt brauch oder du machst nur alles komplizierter als es ist *kritik* darf man fragen wofür? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
remopeter Geschrieben 23. August 2005 Autor Teilen Geschrieben 23. August 2005 @remopeter: wie lange (vorausgesetzt es wurd selbstentwicklet) hastn du dafür gebraucht? habs also wirklich selbst gemacht! weiss nicht mehr wie lange ich dafür gebraucht habe. @den der das Problem hatte, wenn du dann ein formular absendest, musst da ja wieder umwandeln-wenigstens an einer ecke, also entweder hast du riesige zahlen, wo man das echt brauch oder du machst nur alles komplizierter als es ist *kritik* darf man fragen wofür? das formular kann mit den hochkommas abgesendet werden. serverseitig werden dann die hochkommas wieder entfernt. oder man lässt einfach die funktion entferneHochkommas(str) über jedes EingabeFeld im hintergrund laufen. gebrauch wird das ganze für eine budget-tabelle. so bis 100000000 Fr. ! wieviel? 100'000'000 Fr. das ganze ist so einfach besser lesbar. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.