[Laszlo-dev] For Review: Change 20071103-bargull-0 Summary: Add maxlength-support for multiline inputtexts (DHTML)
André Bargull
a.bargull at intensis.de
Sun Nov 4 14:49:09 PST 2007
This covers one problem we've got about newlines:
Let's summarize how newlines are handled in SWF and in different
browsers ("input" -> "output"):
SWF-behaviour:
\n -> \r
\r -> \r
\r\n -> \r\r (!this gives two newlines!)
FF-behaviour:
\n -> \n
\r -> \n
\r\n -> \n
IE-behaviour
\n -> \r\n
\r -> \r\n
\r\n -> \r\n
So, IE does always convert newlines to "\r\n", which gives a length of 2
for every newline. And to get the same length as in SWF/FF, I've simply
used a RegExp. Re-converting is unnecessary in this case, because this
is done automatically by IE.
For the same reason, LzInputTextSprite#getText() has been changed.
But I've just found two other bugs related to multiline
inputtext-fields. I'll resend a new changeset.
On 11/4/2007 4:09 AM, Philip Romanik wrote:
> 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 bargull at dell--p4--2-53 on 2007-11-03
>> 18:09:41 in /home/Admin/src/svn/openlaszlo/trunk
>> for 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
More information about the Laszlo-dev
mailing list