I feel bad that I mentioned that I had a solution to this at all, since
I don't have an open source one, but I don't have the time right now to
explain in English how to write the code. Here is the code we use
(which is copyright 2006 Inspiration Software, All rights reserved).
>From studying this you should be able to create your own solution.
Note that in our case we are allowing new line and tab, but disallowing
all other low ascii. If you want to strip out new lines as well, just
remove the test for lCharCode == 10:
// Copyright 2006 Inspiration Software, All rights reserved.
<script>
<![CDATA[
cleanText = function( inText )
{
var lLength = inText.length;
var lCleanText = "";
var i;
var lChar;
var lCharCode;
for ( i = 0; i < lLength; i++ )
{
lChar = inText.charAt( i );
lCharCode = lChar.charCodeAt(0);
if ( lCharCode > 31 || lCharCode == 9 || lCharCode == 10 )
{
lCleanText += lChar;
}
}
return lCleanText;
}
]]>
</script>
<edittext>
<handler name='ontext' reference='this.field'>
<![CDATA[
var lText = this.getText();
var lCleanText = cleanText(lText);
var lDiff = lText.length - lCleanText.length;
if (lDiff != 0)
{
var lSaveSelStart = this.field.getSelectionPosition();
var lSaveSelSize = this.field.getSelectionSize();
this.setText(lCleanText);
if (lSaveSelStart >= 0 && lSaveSelSize >= 0 )
this.field.setSelection(lSaveSelStart-lDiff,lSaveSelStart+lSaveSelSize-lDiff);
}
]]>
</handler>
</edittext>
Of course if you're going to be putting this into multiple spots, you'd
want to make the body of this handler a method, so you don't end up
with duplicated code all over the place.
-Jason
Luis Eduardo wrote:
from the link given:
["String key mapping
To map string (function) keys, use the *mapstr* (see the *mapkey*(M)
<http://osr5doc.ca.caldera.com:457/cgi-bin/man/man?mapkey+M> manual
page) utility. *mapstr* modifies the string mapping table where function
keys are defined. "]
aaa dude... would be nice if we could only do such a thing on a
_javascript_ (or something that comes within laszlo) and, by some kind of
magic, the O.S started to mapping keys on the way we want to our software.
anyway, you tell that in your application you filter the keys on ontext
handler and can deal with this ctrl+j problem...
can you give more details about this?
pleeeease? :)
Luís Eduardo.
Jason Stafford escreveu:
To answer the question, "But, why Ctrl-J?" take a look at this helpful
page:
http://en.wikipedia.org/wiki/Control_character
Since J is 0x4A in ASCII, and since CTRL subtracts decimal 64 from the
character it combines with, then CTRL+J must be 0x0A, or new line.
Why these ancient keyboard shortcuts for generating low ASCII control
characters are still supported in this modern day is another question
entirely, but I'm sure there was some important reason for this
"backwards compatibility" that has carried through all these years.
In our OpenLaszlo application, we've found many other CTRL characters
to causes all kinds of headaches, so we just filter them out in the
ontext handler, or the onblur handler, depending on the circumstance.
The following page contains a table listing all the values generated
by the keys with the various modifiers down, if you're really curious:
http://osr5doc.ca.caldera.com:457/cgi-bin/man/man?keyboard+HW
-Jason
[EMAIL PROTECTED] wrote:
Ben,
I tested with servlet based LPS version 3.1.1 and 3.3.3.
Internet Explorer 6.0.2900
per your suggestion, I logged a bug for this:
http://www.openlaszlo.org/jira/browse/LPP-2622
Thank you.
Sanjaya
On Wed, Sep 6, 2006 at 8:44 PM, Benjamin Shine wrote:
I hadn't heard of this one before -- please file a bug. But, why
Ctrl-J?
Also, which version of OpenLaszlo?
On Sep 6, 2006, at 7:04 PM, [EMAIL PROTECTED] wrote:
Hi,
I experience unwanted linefeed character inside edittext or inputtext
object. I capture the screenshot for the behavior.
To reproduce the behavior, run the attached simple testcase in
Internet
Explorer, put focus in the edittext object and press CTRL+J once,
type
'1', CTRL+J and type '2' and so on, you will see that a new line is
inserted after the CTRL+J.
the internal '.field' inputtext is resized and growed outside the
border.
a new line will continously be inserted causing the field to grow as
you
hit CTRL+J ... in the GUI it maxed out to 3 lines, but the entered
text
can still grow.
repeating similar testcase for the bottom inputtext object, doesn't
resize
the inputtext object, but the new line still get inserted.
I searched for info in documentation, forum and JIRA .. no luck. I
may be
miss it.
I did a bit research and found that this is a known issue for flash
player
(http://tinyurl.com/k7wze)
I wonder if anyone know a workaround for this.
Thanks
Sanjaya
<test-ctrl-j.lzx>
<ctrl-j in IE.gif>
_______________________________________________
Laszlo-user mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-user
_______________________________________________
Laszlo-user mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-user
--
Jason Stafford
Principal Developer
Inspiration Software, Inc.
The leader in visual thinking & learning
InspireData(tm), the newest innovative thinking and learning tool from
Inspiration Software(r), extends the proven power of visual learning to
data analysis. Learn more at www.inspiration.com.
503-297-3004 Extension 119
503-297-4676 (Fax)
9400 SW Beaverton-Hillsdale Highway
Suite 300
Beaverton, OR 97005-3300
------------------------------------------------------------------------
_______________________________________________
Laszlo-user mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-user
_______________________________________________
Laszlo-user mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-user
--
Jason Stafford
Principal Developer
Inspiration Software, Inc.
The leader in visual thinking & learning
InspireData(tm), the newest innovative thinking and learning tool from
Inspiration Software(r), extends the proven power of visual learning to
data analysis. Learn more at www.inspiration.com.
503-297-3004 Extension 119
503-297-4676 (Fax)
9400 SW Beaverton-Hillsdale Highway
Suite 300
Beaverton, OR 97005-3300
|