Veröffentlicht 15. August 200520 j 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
15. August 200520 j 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)
15. August 200520 j Hat jemand gleich so ein javascript bereit? ich mag nicht das rad nochmals erfinden! würde auch ganz viele, viele merci geben
15. August 200520 j 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...
18. August 200520 j 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
18. August 200520 j @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?
23. August 200520 j @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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.