Approved, but don't you need to make one change? For IE, you convert
\r\n to \n, but you don't convert it back after clipping the string.
I tried IE6 / IE7 / FF2 / Opera9 / Safari3.0.3PC
Change 20071103-bargull-0 by [EMAIL PROTECTED] on 2007-11-03
18:09:41 in /home/Admin/src/svn/openlaszlo/trunk
for
<http://svn.openlaszlo.org/openlaszlo/trunk>http://svn.openlaszlo.org/openlaszlo/trunk
Summary: Add maxlength-support for multiline inputtexts (DHTML)
New Features:
Bugs Fixed:
LPP-4747 - "Edittext maxlength does not work"
Technical Reviewer: max
QA Reviewer: promanik
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details:
The HTML-<textarea> object does not support maxlength natively, so
we need to implement a js-solution in DHTML.
I've used the "onkeyup"-event to check the current text-length and
if the length exceeds its limit and I simply re-assigning the value
property of the <textarea> object. This approach does not give the
best visual experience, because the maxlength-test does happen after
the new input is already visible for the user. Alternatives to "onkeyup" are:
"onkeydown" and "onkeypress".
contra "onkeydown": we cannot determine which character the user
enters, because we just have access to the "keyCode", which
represents the pressed key on the keyboard (think about different
keyboard-layouts, OS,
etc.)
contra "onkeypress": (sometimes,) we can determine which character
the user enters. "sometimes" means, it's browsers-dependent. For
example, IE and FF do give us this char-information (through "keyCode" resp.
"charCode"), but no chance in Opera (I did test not Safari). Opera's
handling is somehow "interesting": if you press a
"alphanumeric"-key, you get the char-code through "keyCode", but if
you press a "function"-key, you get the key-code through "keyCode"
("charCode" is not supported in Opera). So it's almost the same
problem as for "onkeydown", because we cannot easily determine which
character was entered by the user.
I am open for any suggestions for this changeset (i.e.: implement
"onkeypress"-handling for IE/FF/?, and "onkeyup" for Opera/?). It'd
be good to know how Safari handles this issue, because Safari is an
A-list browser whereas Opera is just B-list.
Tests:
Files:
M WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
M WEB-INF/lps/lfc/kernel/dhtml/LzInputTextSprite.js
Changeset:
<http://svn.openlaszlo.org/openlaszlo/patches/20071103-bargull-0.tar>http://svn.openlaszlo.org/openlaszlo/patches/20071103-bargull-0.tar