Hi Christ,

for AjaxFormChoiceComponentUpdatingBehavior it is important that the click happens on one of the "radio" elements.
If the selection is cancalled, we can just use the first radio:

        String name = formComponent.getInputName();

response.render(OnDomReadyHeaderItem.forScript(String.format("$('input[name=\"%s\"]').rating({ callback: function(value, link) { var option = this; if (value == undefined) { option = $('input[name=\"%s\"]')[0]; } $(option).trigger('click'); }});", name, name)));

Note that I had to remove a 'workaround' from the plugin's soure to make this work (line 181 ff):

                // backward compatibility, form element to plugin
//                input.on('change.rating',function(event){
//                    if(event.selfTriggered) return false;
//                    $(this).rating('select');
//                });

I don't understand what that is for - but that isn't a Wicket question ;).

Regards
Sven


On 19.04.2015 20:46, Chris wrote:
Hi Sven & all,

I would also like to get a callback for the cancel button.

I tried following adjustment, but in this case the #onUpdate(AjaxRequestTarget 
target) method is called multiple times and in the end, all stars are 
colored/enabled (instead of all stars greyed out).

response.render(OnDomReadyHeaderItem.forScript(String.format("$('%s').rating({ 
callback: function(value, link) {      if (typeof $(this).attr('id') == 'undefined') 
{$('%s').trigger('click');} else {$(this).trigger('click');} }});", selector, 
selector)));

When the cancel rating link is clicked the id is undefined. I cannot make a JS 
click event on this div, maybe as it is added later via the JS?
http://stackoverflow.com/questions/1551102/jquery-star-rating-plugin-and-cancel-rating-button
 
<http://stackoverflow.com/questions/1551102/jquery-star-rating-plugin-and-cancel-rating-button>

thanks a lot,
Chris




Am 19.04.2015 um 15:26 schrieb Chris <[email protected]>:

Sven, you are great!

Your solution works perfect.

Thanks a lot for your help!!
Chris

Am 19.04.2015 um 11:55 schrieb Sven Meier <[email protected]>:

Hi Chris,

I've opened a pull request.

Hope this helps
Sven


On 19.04.2015 02:43, Chris wrote:
Hi Sven & all,

when using the JS Star Rating plugin (https://www.fyneworks.com/jquery/star-rating 
<https://www.fyneworks.com/jquery/star-rating>, star images instead of radio 
boxes), the #AjaxFormChoicecomponentUpdatingBehaviour does not work anymore.

I have created a sample project based on the wicket-example „RadioGroupPage“ and put 
it here: https://github.com/cat1000/StarRating 
<https://github.com/cat1000/StarRating>

It would be great if someone could have a look the conflict.

Thanks a lot,
Chris





Am 18.04.2015 um 23:43 schrieb Chris <[email protected]>:

Hi Sven,

have you added the AjaxFormChoicecomponentUpdatingBehaviour in this example to 
the group?

group.add(new AjaxFormChoiceComponentUpdatingBehavior() {
           protected void onUpdate(AjaxRequestTarget target) {
       // Ajax actions here
       System.out.println("The selected value is " + 
getComponent().getDefaultModelObjectAsString());
   }
});

Thanks, Chris

Am 18.04.2015 um 13:24 schrieb Sven Meier <[email protected]>:

Looks good.

I've just added an AjaxFormChoiceComponentUpdatingBehavior to wicket-examples' 
RadioGroupPage and it worked as expected.

Which Wicket version? Can you create a quickstart?

Have fun
Sven

On 18.04.2015 13:19, Chris wrote:
The html is as follows:

<wicket:panel>
   <form wicket:id="form" class="form">
      <div class="rating" wicket:id="group">
             <input wicket:id="radio1" type="radio"/>
              <input wicket:id="radio2" type="radio"/>
             ...
      </div>
   </form>
</wicket:panel>

best regards, Chris


Am 18.04.2015 um 13:14 schrieb Chris <[email protected]>:

Hi Sven,

the form is added to a panel.

Chris


Am 18.04.2015 um 11:26 schrieb Sven Meier <[email protected]>:

Hi,

is your RadioGroup is bound to <wicket:container> in your markup?

Sven

On 18.04.2015 07:00, Chris wrote:
Hi all,

I have a radio group with different radio choices and I would like to add ajax 
behavior to the group.
With the method #AjaxFormChoiceComponentUpdatingBehavior, the #onUpdate is 
never called currently.

How to fix this?



Form form = new Form("form");
RadioGroup<RadioChoice> radioGroup = new RadioGroup<RadioChoice>("group", new 
Model<RadioChoice>() {...}

Radio<RadioChoice> radio1 = new Radio<RadioChoice>("radio1", new 
Model<RadioChoice>(1));
Radio<RadioChoice> radio2 = new Radio<RadioChoice>("radio2", new 
Model<RadioChoice>(2));
radioGroup.add(radio1);
radioGroupd.add(Radio2);

form.add(radioGroup);

radioGroup.add(new AjaxFormChoiceComponentUpdatingBehavior() {
          protected void onUpdate(AjaxRequestTarget target) {
              // Ajax actions here
          }
});

Thanks, Chris
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to