Thanks Johan for your answer.
See my code below:
renderContentOn: html | checkedValue | (html jQuery: #testButton) onClick: (html jQuery ajax callback: [:val | checkedValue := val] value: (JSStream on: '$(''[name="someRadioGroup"]:radio:checked").val()'); onComplete: ((html jQuery: #result) load html: [:renderer | renderer html: 'The radio element with value <tt>' , checkedValue , '</tt> is checked.'])). html form: [html div: [html label for: #radioYes; with: 'What is your answer?'. html radioGroup: [:group | html radioButton id: #radioYes; group: group; name: #someRadioGroup; value: #yes; selected: true; with: 'Yes'. html radioButton id: #radioNo; group: group; name: #someRadioGroup; value: #no; with: 'No'. html radioButton id: #radioMaybe; group: group; name: #someRadioGroup; value: #maybe; with: 'Maybe'. html radioButton id: #radioConfused; group: group; name: #someRadioGroup; value: #confused; with: 'I dunno']]. html div: [html button type: #button; id: #testButton; class: #green90x24; with: 'Which?']. html div id: #result]
Unfortunately the code did not work. I did something wrong?
Francisco,
If you want to include a callback to the server on click, this is how I would do it:
(html jQuery: #testButton) onClick: ( (html jQuery ajax callback: [:val | checkedValue := val] value: (JSStream on: '$(''[name=''someRadioGroup'']:radio:checked'').val()'); onComplete: (html jQuery: #result) load html: [:renderer| renderer html: 'The radio element with value <tt>' , checkedValue, '</tt> is checked.'])
This effectively makes two callbacks: one to retrieve the value and one to render the html.
Johan
Did you try putting a halt in both callbacks? Are they executed or not?
On 30 Jan 2012, at 02:09, Francisco Martins wrote:
Thanks Johan for your answer.
See my code below:
renderContentOn: html | checkedValue | (html jQuery: #testButton) onClick: (html jQuery ajax callback: [:val | checkedValue := val] value: (JSStream on: '$(''[name="someRadioGroup"]:radio:checked").val()'); onComplete: ((html jQuery: #result) load html: [:renderer | renderer html: 'The radio element with value <tt>' , checkedValue , '</tt> is checked.'])). html form: [html div: [html label for: #radioYes; with: 'What is your answer?'. html radioGroup: [:group | html radioButton id: #radioYes; group: group; name: #someRadioGroup; value: #yes; selected: true; with: 'Yes'. html radioButton id: #radioNo; group: group; name: #someRadioGroup; value: #no; with: 'No'. html radioButton id: #radioMaybe; group: group; name: #someRadioGroup; value: #maybe; with: 'Maybe'. html radioButton id: #radioConfused; group: group; name: #someRadioGroup; value: #confused; with: 'I dunno']]. html div: [html button type: #button; id: #testButton; class: #green90x24; with: 'Which?']. html div id: #result]
Unfortunately the code did not work. I did something wrong?
Francisco,
If you want to include a callback to the server on click, this is how I would do it:
(html jQuery: #testButton) onClick: ( (html jQuery ajax callback: [:val | checkedValue := val] value: (JSStream on: '$(''[name=''someRadioGroup'']:radio:checked'').val()'); onComplete: (html jQuery: #result) load html: [:renderer| renderer html: 'The radio element with value <tt>' , checkedValue, '</tt> is checked.'])
This effectively makes two callbacks: one to retrieve the value and one to render the html.
Johan
-- Sds.,
Francisco Ary Martins http://chicoary.wordpress.com
"A filosofia não é senão uma poesia sofisticada." Montaigne _______________________________________________ seaside mailing list seaside@lists.squeakfoundation.org http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Francisco,
Wait... now I see that you are just generating the script but you are not attaching it anywhere. The script is therefore never rendered to the client side. You original code snippet contained:
html document addLoadscript: <script>
which is correct, but you can also attach the script to the testButton like this:
html button script: <script> ; id: ...
From there on, I think it should work but I'm also just writing this off the top of my head.
With <script> being:
(html jQuery: #testButton) onClick: (html jQuery ajax callback: [:val | checkedValue := val] value: (JSStream on: '$(''[name="someRadioGroup"]:radio:checked").val()'); onComplete: ((html jQuery: #result) load html: [:renderer | renderer html: 'The radio element with value <tt>' , checkedValue , '</tt> is checked.'])).
best Johan
On 30 Jan 2012, at 02:09, Francisco Martins wrote:
Thanks Johan for your answer.
See my code below:
renderContentOn: html | checkedValue | (html jQuery: #testButton) onClick: (html jQuery ajax callback: [:val | checkedValue := val] value: (JSStream on: '$(''[name="someRadioGroup"]:radio:checked").val()'); onComplete: ((html jQuery: #result) load html: [:renderer | renderer html: 'The radio element with value <tt>' , checkedValue , '</tt> is checked.'])). html form: [html div: [html label for: #radioYes; with: 'What is your answer?'. html radioGroup: [:group | html radioButton id: #radioYes; group: group; name: #someRadioGroup; value: #yes; selected: true; with: 'Yes'. html radioButton id: #radioNo; group: group; name: #someRadioGroup; value: #no; with: 'No'. html radioButton id: #radioMaybe; group: group; name: #someRadioGroup; value: #maybe; with: 'Maybe'. html radioButton id: #radioConfused; group: group; name: #someRadioGroup; value: #confused; with: 'I dunno']]. html div: [html button type: #button; id: #testButton; class: #green90x24; with: 'Which?']. html div id: #result]
Unfortunately the code did not work. I did something wrong?
Francisco,
If you want to include a callback to the server on click, this is how I would do it:
(html jQuery: #testButton) onClick: ( (html jQuery ajax callback: [:val | checkedValue := val] value: (JSStream on: '$(''[name=''someRadioGroup'']:radio:checked'').val()'); onComplete: (html jQuery: #result) load html: [:renderer| renderer html: 'The radio element with value <tt>' , checkedValue, '</tt> is checked.'])
This effectively makes two callbacks: one to retrieve the value and one to render the html.
Johan
-- Sds.,
Francisco Ary Martins http://chicoary.wordpress.com
"A filosofia não é senão uma poesia sofisticada." Montaigne _______________________________________________ seaside mailing list seaside@lists.squeakfoundation.org http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
seaside@lists.squeakfoundation.org