[Seaside] Re: onKeyUp: -> do check and enable button

Max Leske maxleske at gmail.com
Thu Jul 11 06:25:45 UTC 2013


Sorry about my first answer. I was at work and wanted to do this quickly. I've posted all the relevant code below.

For clarification: this is from Seaside 2.8, the script is Scriptaculous / Prototype (SUObject and subclasses).

"aBlock" (as you can see now in the code below) is the secondary callback [ :value | self customOrderCount: value asNumberOrZero ]. You can specify multiple secondary callback, but only one primary callback (the primary callback being #callback:, the secondary #callback:value:). The second argument to #callback:value: is a script that will be evaluated on the client side when the event is triggered. The value is then passed into the (secondary) callback block. The primary callback will be evaluated only after all secondary callbacks have been evaluated.
The flow is thus the following:
1. get the value of the text input ("(html formElement id: id) value")
2. write that value to a variable (secondary callback)
3. update the content of a <div> according to the changed value (primary callback)

"id" is the id of the text input, in this case 'custom-order-amount'.
#updateSideContainerOn: simply creates a script that updates a <div> with new information.

renderCustomOrderCountBasicOn: html
	html textInput
		id: 'custom-order-amount';
		onKeyUp: (self customOrderCountChangedOn: html).
	html text: 'Ex.'


customOrderCountChangedOn: html
	^ self
		get: 'custom-order-amount'
		doAndUpdate: [ :value | self customOrderCount: value asNumberOrZero ]
		on: html


get: id doAndUpdate: aBlock on: html
	^ (html evaluator
		callback: [ :script | self updateSideContainerOn: script ];
		callback: aBlock
			value: (html formElement id: id) value;
		yourself) asString


updateSideContainerOn: script
	script add: (script canvas updater
		id: 'side-container';
		callback: [ :ajaxHtml | self renderPageRightOn: ajaxHtml ];
		yourself)


Cheers,
Max


On 10.07.2013, at 11:26, Sabine Knöfel <sabine.knoefel at gmail.com> wrote:

> Hi Max, 
> 
> thanks. 3 questions: 
> 1) what is in aBlock? 
> 2) is id the id of the textInput? 
> 3) can you send (the relevant part) of updateSideContainerOn? 
> 
> Sabine 
> 
> On Wed, Jul 10, 2013 at 11:04 AM, Max Leske [via Smalltalk] 
> <[hidden email]> wrote:
> 
> > Hi Sabine 
> > 
> > We use some similar code. I simply copied it from our productive 
> > environment, so you'll have to figure out the details for yourself :) 
> > #customOrderCountChangedOn: basicly answers the script I pasted second. 
> > 
> > html textInput 
> >                 id: 'custom-order-amount'; 
> >                 onKeyUp: (self customOrderCountChangedOn: html). 
> > 
> > (html evaluator 
> >                 callback: [ :script | self updateSideContainerOn: script ]; 
> >                 callback: aBlock 
> >                         value: (html formElement id: id) value; 
> >                 yourself) asString 
> > 
> > HTH (ask again if you're having troubles), 
> > Max 
> > 
> > On 10.07.2013, at 10:35, Sabine Knöfel <[hidden email]> wrote: 
> > 
> >> Hi, 
> >> 
> >> in a "register new user" page, I have a textInput where I want to check 
> >> the 
> >> validity of an email address each time the user types in one character. If 
> >> the email adress is valid, the "register" button should enable. 
> >> 
> >> How would you do this? Does anybody have a text snippet for me? 
> >> 
> >> html textInput 
> >> .... 
> >> onKeyUp: ???? 
> >> 
> >> Sabine 
> >> 
> >> 
> >> 
> >> -- 
> >> View this message in context: 
> >> http://forum.world.st/onKeyUp-do-check-and-enable-button-tp4698098.html
> >> Sent from the Seaside General mailing list archive at Nabble.com. 
> >> _______________________________________________ 
> >> seaside mailing list 
> >> [hidden email] 
> >> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> > 
> > _______________________________________________ 
> > seaside mailing list 
> > [hidden email] 
> > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> > 
> > 
> > ________________________________ 
> > If you reply to this email, your message will be added to the discussion 
> > below: 
> > http://forum.world.st/onKeyUp-do-check-and-enable-button-tp4698098p4698113.html
> > To unsubscribe from onKeyUp: -> do check and enable button, click here. 
> > NAML 
> 
> View this message in context: Re: onKeyUp: -> do check and enable button
> Sent from the Seaside General mailing list archive at Nabble.com.
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20130711/bb4f1b07/attachment.htm


More information about the seaside mailing list