invoervak met max. invoer

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Alexander Pushkin

Alexander Pushkin

15/04/2016 15:39:27
Quote Anchor link
Hoe kan ik een invoerkader formeren dat 40 karakters lang is en 2 regels bevat en dat niet groter te maken is.
Mijn deelnemers krijgen een visitekaartje op de site en daar mogen ze een tekst van 2 regels op zetten. Nu heb ik dat in Dreamweaver geprobeerd met het invoervak van formulieren en dat ingesteld op "meerdere regels", 40 tekens breed en 1 regel. Er kunnen dan 2 regels onder elkaar getypt worden, maar in werkelijkheid kun je maar door blijven typen of zelfs de grootte veranderen door te slepen met de puntjes rechts onder.
Heb wel met 'strlen' het afkappen na het 80e karakter geregeld maar dat kan dan middel in een woord gebeuren.
Wie heeft een suggestie.
 
PHP hulp

PHP hulp

16/11/2024 17:20:48
 
Thomas van den Heuvel

Thomas van den Heuvel

15/04/2016 15:48:33
Quote Anchor link
Twee inputvelden van het type tekst. De gezamenlijke lengte mag niet langer zijn dan 40 karakters.
Dat geeft gebruikers de vrijheid om één regel tekst van 40 karakters in te voeren, of iets anders verdeeld over twee regels. Moet je wel afvragen hoe je dit opslaat, waarschijnlijk is het het makkelijkste om de tekst dan ook in twee kolommen onder te brengen. De maximum lengte wordt dan voornamelijk programmatisch geregeld.

Dan zul je wellicht nog wat randgevallen moeten afvangen waarin één karakter mogelijk is opgebouwd uit meerdere bytes. De functie strlen() telt het aantal BYTES, niet het aantal KARAKTERS.
 
Team Zero

Team Zero

15/04/2016 16:50:49
Quote Anchor link
Je HTML:
<textarea name="myname" id="mytext" cols="50" rows="2" style="resize: none;"></textarea>

Stukje jQuery (voor het 40 regels per line) Let op dat je jQuery hebt.

<script type="text/javascript">
var maxLength = 40;
$('#mytext').on('input focus keydown keyup', function() {
var text = $(this).val();
var lines = text.split(/(\r\n|\n|\r)/gm);
for (var i = 0; i < lines.length; i++) {
if (lines.length > maxLength) {
lines = lines.substring(0, maxLength);
}
}
$(this).val(lines.join(''));
});
</script>

Dan zou ik nog een check in PHP maken bij het opslaan.
Chars kun je rustig tellen. Bovenstaande kun je oplossen door mb_strlen() te gebruiken.
 
Alexander Pushkin

Alexander Pushkin

21/04/2016 09:22:55
Quote Anchor link
Excuses voor de late reactie.Kwam het bericht toevallig in de spambox op mijn tablet tegen en niet op mijn pc, raar.
In ieder geval bedankt voor beide oplossingen. De eerste had ik zelf ook aan gedacht maar staat zo knullig op een invoerformulier. De tweede oplossing ligt daarom het meest voor de hand.
Ga er mee aan de slag.
Nogmaals sorry,
Alexander
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.