Hi all,
I've been playing with seaside and scriptaculous for some time now, happily developing with firefox. Yesterday decided to try my page on IE and found out that it has some different behaviour for updating content. For example, I have a root task that implements the following #go self call: WAMyComponent new My component have some input text, that after entering some values and call #answer:, they don't get blanked (They does on firefox). Same thing with updating forms. The following method does rerender the textInput in firefox, and it just ignores it in IE: renderFormOn: html html form id: 'form'; with: [ html textInput on: #val of: self; onChange: ( html updater id: 'form'; triggerForm: 'form'; callback: [ :object | self renderFormOn: object ] ) ] Assume that #val: does something like val := anObject asNumber min: 10 so you can test entering 20 and seeing it change to 10 on unfocusing. The updater callback gets evaluated, but the browser just refuse to re render it. Any ideas of what I'm missing here ? Thanks for reading. -- Rusty http://www.oxidized.com.ar/ [hidden email] _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Just for the record, the working example of the second case is:
asd: html html div id: 'divTag'; with: [ html textInput id: 'inputTag'; on: #val of: self; onChange: ( html updater id: 'divTag'; triggerForm: 'inputTag'; callback: [ :object | self asd: html ] ) ] May sound obvious for an experienced ajax wrestler but for the common smalltalker it could be a pain in the arse. Thanx for watching. Rusty On 24/11/2007, Rusty <[hidden email]> wrote: > Hi all, > I've been playing with seaside and scriptaculous for some time now, > happily developing with firefox. Yesterday decided to try my page on > IE and found out that it has some different behaviour for updating > content. > For example, I have a root task that implements the following #go > > self call: WAMyComponent new > > My component have some input text, that after entering some values and > call #answer:, they don't get blanked (They does on firefox). > Same thing with updating forms. The following method does rerender the > textInput in firefox, and it just ignores it in IE: > > renderFormOn: html > html form > id: 'form'; > with: [ > html textInput > on: #val of: self; > onChange: ( > html updater > id: 'form'; > triggerForm: 'form'; > callback: [ :object | self renderFormOn: object ] ) ] > > Assume that #val: does something like val := anObject asNumber min: 10 > so you can test entering 20 and seeing it change to 10 on unfocusing. > The updater callback gets evaluated, but the browser just refuse to re > render it. > > Any ideas of what I'm missing here ? > > Thanks for reading. > > -- > Rusty > http://www.oxidized.com.ar/ > [hidden email] > -- Rusty http://www.oxidized.com.ar/ [hidden email] _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Rusty,
probably the nesting of the html form tag was giving you annoyances. It's quite common that when you update values using on change event you don't need submit at all (so don't need the form tag and that nasty limitation). cheers, Sebastian > -----Mensaje original----- > De: [hidden email] > [mailto:[hidden email]] En nombre de Rusty > Enviado el: Domingo, 25 de Noviembre de 2007 14:05 > Para: [hidden email] > Asunto: [Seaside] Re: IE not refreshing ? > > Just for the record, the working example of the second case is: > > asd: html > html div > id: 'divTag'; > with: [ > html textInput > id: 'inputTag'; > on: #val of: self; > onChange: ( > html updater > id: 'divTag'; > triggerForm: 'inputTag'; > callback: [ > :object | self asd: html ] ) ] > > May sound obvious for an experienced ajax wrestler but for > the common smalltalker it could be a pain in the arse. > > Thanx for watching. > > Rusty > > On 24/11/2007, Rusty <[hidden email]> wrote: > > Hi all, > > I've been playing with seaside and scriptaculous for some time now, > > happily developing with firefox. Yesterday decided to try > my page on > > IE and found out that it has some different behaviour for updating > > content. > > For example, I have a root task that implements the following #go > > > > self call: WAMyComponent new > > > > My component have some input text, that after entering some > values and > > call #answer:, they don't get blanked (They does on firefox). > > Same thing with updating forms. The following method does > rerender the > > textInput in firefox, and it just ignores it in IE: > > > > renderFormOn: html > > html form > > id: 'form'; > > with: [ > > html textInput > > on: #val of: self; > > onChange: ( > > html updater > > id: 'form'; > > triggerForm: 'form'; > > callback: [ > > self renderFormOn: object ] ) ] > > > > Assume that #val: does something like val := anObject > asNumber min: 10 > > so you can test entering 20 and seeing it change to 10 on > unfocusing. > > The updater callback gets evaluated, but the browser just > refuse to re > > render it. > > > > Any ideas of what I'm missing here ? > > > > Thanks for reading. > > > > -- > > Rusty > > http://www.oxidized.com.ar/ > > [hidden email] > > > > > -- > Rusty > http://www.oxidized.com.ar/ > [hidden email] > _______________________________________________ > 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 |
In reply to this post by Rusty-24
Rusty,
you may also take a look to this to see if it gives you ideas to achieve your intention: renderContentOn: html html div id: #blahInputContainer; with:[self renderBlahInputOn: html] renderInputOn: html html textInput id: #blahInput onChange: (html updater id: #blahInputContainer; callback:[:val| self enteredBlahValue: val] value:(html element id: #blahInput; value); callback:[:h| self renderBlahInputOn: html]; yourself) note that the updater is called on the div id but it renders only it's inner html content to prevent nesting it indefinitely, Cheers, Sebastian > -----Mensaje original----- > De: [hidden email] > [mailto:[hidden email]] En nombre de Rusty > Enviado el: Sábado, 24 de Noviembre de 2007 17:12 > Para: [hidden email] > Asunto: [Seaside] IE not refreshing ? > > Hi all, > I've been playing with seaside and scriptaculous for some > time now, happily developing with firefox. Yesterday decided > to try my page on IE and found out that it has some different > behaviour for updating content. > For example, I have a root task that implements the following #go > > self call: WAMyComponent new > > My component have some input text, that after entering some > values and call #answer:, they don't get blanked (They does > on firefox). > Same thing with updating forms. The following method does > rerender the textInput in firefox, and it just ignores it in IE: > > renderFormOn: html > html form > id: 'form'; > with: [ > html textInput > on: #val of: self; > onChange: ( > html updater > id: 'form'; > triggerForm: 'form'; > callback: [ > :object | self renderFormOn: object ] ) ] > > Assume that #val: does something like val := anObject > asNumber min: 10 so you can test entering 20 and seeing it > change to 10 on unfocusing. > The updater callback gets evaluated, but the browser just > refuse to re render it. > > Any ideas of what I'm missing here ? > > Thanks for reading. > > -- > Rusty > http://www.oxidized.com.ar/ > [hidden email] > _______________________________________________ > 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 |
Free forum by Nabble | Edit this page |