[Javascript] Aantal regels in een textarea

Pagina: 1
Acties:

  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
Ik heb het volgende probleem:

Ik ben bezig om voor mijn stagebedrijf een systeem in elkaar te zetten waarmee particulieren en bedrijven hun auto's/uitjes/vacatures/huizen kunnen aanbieden. Het is de bedoeling dat dit systeem dadelijk automatisch de advertenties omzet in PDF waarna een hele pagina met bijvoorbeeld autoadvertenties direct in de krant gezet kan worden (werk bij een uitgeverij).

Ik moet nu een controle gaan maken voor de advertenties: Een advertentie mag maar een bepaald aantal regels hebben waarbij elke regel een maximale lengte heeft.

Als een karakter een vaste breedte heeft is dit geen probleem, dan geef ik gewoon een grens aan het aantal karakters, maar dit gaat nu niet.

Is het met javascript mogelijk om het aantal regels dat getypt wordt (mét wrapping) te tellen?

My personal videoteek: -Clique-; -NMe- is een snol!


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 09:21
Scrolling uitzetten? Dan zie je niets meer :)
Volgens mij is dit niet echt te beperken met Javascript. Je zou hoogstens en div naast de area kunnen zetten waarin je het resultaat ziet en je dus ziet of het teveel is.

  • Koeniepoenie
  • Registratie: Oktober 2003
  • Laatst online: 08-05 22:42
Tsjah, als je regels bedoelt als in regels op een vel papier. Is dit niet te doen (met variabele tekenbreedte). Wanneer je echte regels bedoeld (dus afsluitend met een punt) is dit wel te doen, maar dat bedoel je volgens mij niet :+

Parse error: syntax error, unexpected GOT_USER in https://gathering.tweakers.net on line 1337


  • mjax
  • Registratie: September 2000
  • Laatst online: 08-05 18:54
Ik neem aan dat je het aantal regels dat uiteindelijk gepubliceerd gaat worden in die krant wilt tellen?

Het aantal regels is toch afhankelijk van de beschikbare breedte en dat is toch weer afhankelijk van het uiteindelijke lettertype, spacing etc. die gebruikt gaat worden. Heb je dit soort variabelen wel bij de hand in je JavaScript?

  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
Als het regels met linebreaks zijn is het niet zo'n probleem, dan haal ik gewoon het aantal linebreaks eruit, het probleem is dat we gaan werken met een textarea met wrapping en zoals koenie zegt moeten we dat aantal regels hebben...

[ Voor 2% gewijzigd door Kayshin op 01-03-2005 16:29 . Reden: Typo ]

My personal videoteek: -Clique-; -NMe- is een snol!


  • Cyphax
  • Registratie: November 2000
  • Laatst online: 14:44

Cyphax

Moderator LNX
De breedte van de textarea is gemeten in karakters, toch? Monospaced?
Dan zou ik de string splitten bij de linebreaks en van de losse strings de karakters tellen. Dat aantal delen door de breedte en de linebreaks erbij optellen?
Zou zoiets niet werken?

Saved by the buoyancy of citrus


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
Breedte is niet gemeten in karakters, probeer bijvoorbeeld maar eens in de quick reply allemaal w's te zetten op 1 regel en daaronder allemaal i's. Met de i's heb je veel meer tekens. Als ik de textarea een ander lettertype zou geven zou het wel gaan, dan krijg ik zo'n kladblok lettertype, maar dan ziet dit niet mooi uit...

Ook in de advertentie ziet het er dan niet uit, we hebben een huisstijl die we graag willen vasthouden.

T enige dat ik eigenlijk wil weten of ik de wraps kan tellen, want dan tel ik wraps+breaks en dan heb ik t aantal regels...

My personal videoteek: -Clique-; -NMe- is een snol!


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Een Textarea wordt standaard weergegeven met Courier New als lettertype. Desnoods kun je zelf de textarea een monospaced-lettertype geven, bijv. Courier New, Lucida Sans Console of Bitstream Vera Sans Mono. Dit zijn de wat gangbaardere monospace lettertypes.

Voor de rest, jouw probleem is van opmaak-aard. Ik neem aan dat de uiteindelijke advertentie niet in een monospace font wordt weergegeven, dus dan heb je nog steeds een probleem. Echter is het heel moeilijk om programmatisch te controleren of de gebruiker een goede opmaak invoert. Beter kun je de user zoveel mogelijk beperken in zijn invoer zodat er in ieder geval niets 'stuk' gaat door ongewenste invoer.

Echter neem ik aan dat er bij het ontwerpen van de krant rekening is gehouden met dat maximale aantal letters op een regel. Als de krant zegt dat een regel zo en zo lang mag zijn, so be it. Je kunt ook overwegen om per regel een apart inputveld neer te zetten, zo wordt dat ook gedaan als je op papier een krantenadvertentie instuurt. Dan hoef je niet ontzettend te klooien met het zoeken naar linebreaks en de klant ziet gelijk duidelijk wat voor invoer er van hem verwacht wordt..

[ Voor 5% gewijzigd door Not Pingu op 01-03-2005 16:59 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
Ik kan niet aangeven dat ze een maximaal aantal letters per regel hebben, dan krijg ik heel ongelijke regels. Verder kan ik inderdaad wel elke regel in een aparte field gaan zetten, maar dan is voor mij (en mijn baas) een heel stuk gebruikersvriendelijkheid weg.

Een lettertype als jij zegt heb ik ook aan gedacht, maar dit gaat inderdaad niet als het de krant ingaat.

My personal videoteek: -Clique-; -NMe- is een snol!


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

och, daar is best iets op te verzinnen ;)

[ Voor 10% gewijzigd door crisp op 29-06-2005 15:22 ]

Intentionally left blank


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Maar dat is nog geen garantie dat je ook daadwerkelijk deugdelijke input krijgt van je users.
Dan zou je alsnog met de hand elke advertentie moeten controleren en corrigeren, en ik krijg het idee dat dat niet de bedoeling is.


Ik lees in de TS:
Kayshin schreef op dinsdag 01 maart 2005 @ 15:44:
Ik moet nu een controle gaan maken voor de advertenties: Een advertentie mag maar een bepaald aantal regels hebben waarbij elke regel een maximale lengte heeft.
[..]
Is het met javascript mogelijk om het aantal regels dat getypt wordt (mét wrapping) te tellen?
Als dit harde constraints zijn dan weet je toch genoeg? Eventueel haal je de opmaak voor een groot deel uit handen van de gebruiker en vervang je alle linebreaks door spaties.
Vervolgens loop je letter voor letter door de tekst heen en op het moment dat je de maximale regellengte hebt bereikt, vervang je de laatste spatie die je tegenkwam door een linebreak.

Dit kan ook tot problemen leiden bij lange woorden of samenvoegingen van woorden (bijv. auto specs) met koppeltekens ofzo. Je weet nooit wat voor gekke opmaakstreken je krijgt, zeker als het om advertenties gaat waar mensen toch al geneigd zijn om te goochelen met woorden en leestekens om zoveel mogelijk erin te krijgen.

Of je zou heel precies moeten gaan werken en tellen hoeveel dots er in een regel van een advertentie gaan (als ze in de krant afgedrukt worden). Elk toegestane teken is ook een aantal dots groot. Verzamel die waarden en tel vervolgens de dots bij elkaar op zodra de gebruiker invoer doet.

[ Voor 12% gewijzigd door Not Pingu op 01-03-2005 18:06 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Gunp01nt schreef op dinsdag 01 maart 2005 @ 18:03:
Maar dat is nog geen garantie dat je ook daadwerkelijk deugdelijke input krijgt van je users.
Serverside kan je precies hetzelfde doen, maar op een iets andere manier. Als je van elk karakter de breedte weet in een bepaald lettertype/grootte dan is dat een eitje ;)

Het heeft aan de andere kant wel degelijk voordeel om aan de gebruiker alvast te tonen hoe het er uiteindelijk uit zal komen te zien, en wat ze ervoor zullen moeten betalen.

[ Voor 20% gewijzigd door crisp op 01-03-2005 18:07 ]

Intentionally left blank


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
Op zich is het idee van Crisp heel fijn, Het is idd ook de bedoeling dat mensen hun advertentie kunnen previewen voordat deze de krant in komt.

We willen dadelijk de klant verantwoordelijk houden voor hetgeen dat in de krant/op de site komt. Als de advertentie er niet goed in staat is dat niet ons probleem :P

Het leuke aan dit systeem is dat we het de mensen op de een of andere manier kunnen opdringen: doe het niet zo, dan krijg je geen advertentie.

De advertentie online zal ook gratis zijn, waarbij ze kunnen aangeven of deze doorgeplaatst moet worden in de krant.

Ik zal eens kijken of ik het systeem van Crisp kan implementeren.

THX :D

My personal videoteek: -Clique-; -NMe- is een snol!

Pagina: 1