<input type="text" onkeypress={ "processKeyPress(event.which, " + 
jsonCall("pressed", JsRaw("event.which")).toJsCmd + ")" } />

-Ross

On Feb 24, 2010, at 6:38 PM, Rick R wrote:

> That works beautifully, thanks.
> 
> With regards to using custom javascript functions,  I have a function
> processKeyPress. It's role is to filter key presses, only send events
> to the server upon certain key presses.
> 
> I guess the easiest way to handle this would be to pass the function created 
> by:
> {jsonCall("pressed", JsRaw("event.which")).toJsCmd}
> 
> into processKeyPress so that it can invoke it if the event.which is
> the correct type.
> 
> Unfortunately, I can't come up with a way to describe this in inline XML.
> 
> <input type="textarea" onkeypress="processKeyPress(event.which,
> {jsonCall("pressed", JsRaw("event.which")).toJsCmd})"/>
> 
> leaving out the " causes a parse error.. adding the " cause it to be
> evaulated as a string.
> 
> Any ideas?
> 
> 
> 
> On Wed, Feb 24, 2010 at 2:57 PM, David Pollak
> <[email protected]> wrote:
>> Rick,
>> 
>> Here's a simple example:
>> 
>> import net.liftweb._
>> import util._
>> import http._
>> import js._
>> import JsCmds._
>> import JE._
>> import scala.xml.NodeSeq
>> 
>> class Evently extends CometActor {
>> 
>>   // handle an incoming JSON event
>>   override def handleJson(in: Any): JsCmd = in match {
>>     case JsonCmd("pressed", _, key, _) => SetHtml("info", <b>You pressed
>> {key}</b>)
>>     case _ => Noop
>>   }
>> 
>>   def render =
>>   <div>
>>   <span id="info"/> <!-- A place to put stuff -->
>>   {
>>     Script(jsonInCode) // include the JSON callback
>>   }
>>    <input type="text" onkeypress={jsonCall("pressed",
>> JsRaw("event.which")).toJsCmd}/>
>>   </div>
>> }
>> 
>> So, the handleJson message gets called on the server whenever a key is
>> pressed on the client (this example works in non-IE browsers, but that's
>> just 'cause I'm using event.which rather than event.keyCode).
>> 
>> Hope this helps.
>> 
>> Thanks,
>> 
>> David
>> 
>> 
>> On Wed, Feb 24, 2010 at 8:23 AM, Rick R <[email protected]> wrote:
>>> 
>>> I have a textarea in which I process onKeyUp and onKeyDown commands.
>>> The handlers for such things are custom javascript.
>>> I would like to invoke functions in a Comet LiftActor /
>>> ListenerManager via these custom javascript functions. Is there
>>> documentation on the recommended way to do so?
>>> 
>>> It looks like I will have to define the functions within a render call
>>> and use the SHtml.ajaxCall function, since the destination url is
>>> randomized.  I am just wondering what would be the idiomatic way to do
>>> this.
>>> 
>>> This is for a chat style app which processes/distributes data by the
>>> keystroke rather than by a  line/post command.
>>> 
>>> 
>>> I'm open to any ideas / alternate suggestions.
>>> 
>>> Thanks,
>>> Rick
>>> 
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Lift" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/liftweb?hl=en.
>>> 
>> 
>> 
>> 
>> --
>> Lift, the simply functional web framework http://liftweb.net
>> Beginning Scala http://www.apress.com/book/view/1430219890
>> Follow me: http://twitter.com/dpp
>> Surf the harmonics
>> 
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Lift" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/liftweb?hl=en.
>> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Lift" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/liftweb?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en.

Reply via email to