J
Jesper Rønn-Jensen
I have a textarea that must be limited to 70 characters. No big deal --
at least so I thought.
* Textarea must not exceed 70 characters
* Exceeding content must be cut off
* Must work on input by keyboard (keypress, keyup events)
* Must work on pasted input from context menu
* Must work on pasted input via CTRL+V and similar
* Must work on pasted input via browsers menu>Edit>Paste
* Must work in Mozilla + IE and coded via W3C standards
I found quite some discussions here in comp.lang.javascript on this
subject, but all lack the discussion of non-keyboard inputs.
So far, I concluded to avoid using the onkeyup or onkeypress events -
they do not capture when data pasted via the mouse.
This is what I do now, but there are still problems.
* Textarea onfocus() adds a window.setInterval eventlistener to check
the textarea value 10 times per second.
* If textarea.value exceeds 70 characters, set textarea.value to
substring(0,69)
* Textarea onblur() removes eventlistener via window.clearInterval
This works when I paste text in all ways and when I enter data by
keyboard from one end to the other. BUT as soon as I add text at the
beginning of the textarea, then the end text is cut off and cursor is
moved to the end of textarea.
My idea would work OK if I could figure out a way to move cursor back
to its position when I finish cropping textarea text. As you might see,
I'm a bit stuck here.
Any suggestions appreciated,
Thanks in advance,
Jesper
at least so I thought.
* Textarea must not exceed 70 characters
* Exceeding content must be cut off
* Must work on input by keyboard (keypress, keyup events)
* Must work on pasted input from context menu
* Must work on pasted input via CTRL+V and similar
* Must work on pasted input via browsers menu>Edit>Paste
* Must work in Mozilla + IE and coded via W3C standards
I found quite some discussions here in comp.lang.javascript on this
subject, but all lack the discussion of non-keyboard inputs.
So far, I concluded to avoid using the onkeyup or onkeypress events -
they do not capture when data pasted via the mouse.
This is what I do now, but there are still problems.
* Textarea onfocus() adds a window.setInterval eventlistener to check
the textarea value 10 times per second.
* If textarea.value exceeds 70 characters, set textarea.value to
substring(0,69)
* Textarea onblur() removes eventlistener via window.clearInterval
This works when I paste text in all ways and when I enter data by
keyboard from one end to the other. BUT as soon as I add text at the
beginning of the textarea, then the end text is cut off and cursor is
moved to the end of textarea.
My idea would work OK if I could figure out a way to move cursor back
to its position when I finish cropping textarea text. As you might see,
I'm a bit stuck here.
Any suggestions appreciated,
Thanks in advance,
Jesper