Zum Inhalt springen

Hochkommas in Eingabefelder


remopeter

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

@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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

@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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...