Archief - JS: Aftellen aantal karakters typen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Blaugrana

Legacy Member
Hallo,

Met welk script kan ik het aantal karakters dat men nog kan typen in een form laten aftellen?

Alvast bedankt

BertG

Legacy Member
wel, ge neemt de value van je textbox, en doet daar een string lenght function op. Die lengte tel je dan af van de maximumwaarde en "tada" ge ebt je oplossing :p
Code:
var textbox = document.getElementById("textboxid");
var toonbox = document.getElementById("toonboxid");
var maxtekens = 50;
var tekensover = 50;
toonbox.value = tekensover;

textbox.onchange = function () {
   tekensover = maxtekens - this.value.length;
   toonbox.value = tekensover;
}

textbox.onkeypress = function () {
   if (tekensover <= 0) {
      return false; // hou de insert van het teken tegen.
   }
}

dit zou ongeveer moeten werken, is niet getest, maar zal er niet ver van zitten.

BloodSeaker

Legacy Member
Code:
<script type="text/javascript">
		function checkLength(inputField, displayField){
			var remainingField = document.getElementById(displayField);
			var inp = document.getElementById(inputField).value;
			var l = parseInt(inp.length);
			if (l > 500){
				inp = inp.substr(0,500);
				document.getElementById(inputField).value = inp;
				return;
			}
			remainingField.value= (500 - l) + " karakters over.";
		}
</script>

//bovenstaande voegt je in je head toe
//in je html komt dan gelijkaardige code aan onderstaande. Het aantal toegelaten karakters voor deze textarea staat op 500

<p>
Commentaar:<br />
<textarea name="comments" rows="5" cols="50" id="commentEntry" onKeyUp="checkLength('commentEntry', 'remainingCount')"></textarea><br />
Resterende karakters: <input type="text" disabled="disabled" id="remainingCount" value="500 karakters over" />
</p>

Biebel

Legacy Member
Is er toevallig iemand die weet hoe je met JavaScript de bytesize van de tekst kan berekenen? Ik zit namelijk met een probleem waar een gebruiker in een Oracle tablefield (varchar2) max 4000 byte aan karakters mag intikken. Maar het probleem is dat Hebreeuws en Grieks bvb op zich al 2-3 bytes per character nemen, Slovaaks heeft ook enkele speciale tekens die meerdere bytes in beslag nemen. Om te vermijden dat we moeten upgraden naar een clob veld zouden we eerst liever de ingevoerde tekst willen beperken met JS, maar tot dusver heb ik enkel nog maar methodes gevonden om het aantal karakters te tellen, geen bytes...

tnx,
B.

servi

Legacy Member
je kan de taal opvragen die de gebruiker gebruikt en van daar uit dan het aantal tekens verder beperken.

Biebel

Legacy Member
Wel, das net het probleem. Eerst en vooral zijn er veel talen die een mix gebruiken van latin-1 en multibyte karakters. En als ik me niet vergis is de JS check op de OS taal van de gebruiker niet altijd even correct.
Dus ik verkies een controle die onafhankelijk werkt van de taal en de taalsetting. Maar toch bedankt voor de suggestie :)

B.

servi

Legacy Member
Als je het 100% correct wil weten kan je het sowieso al niet met javascript doen. Javascript heeft immers geen ondersteuning voor bytes.

Biebel

Legacy Member
Dat is dus wat ik dacht. Oh well, we zullen er wel iets op vinden :)

B.

dJeez

Legacy Member
Nah, als je het 100% correct wil doen zet je het veld in de DB in een unicode karakterset, dan heb je dat probleem hoegenaamd niet.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan