Hi Richard,

Thanks for the reply. It didn't bring me further though.
When debugging, Wicket.$$(this) and the other one both return true, so
that doesn't seem to be the problem.

When tracking the evaluation of the precondition, I end up in wicket-event.js

25 if (Function.prototype.bind == null) {
26 Function.prototype.bind = function(object) {
27 var __method = this;
28 return function() {
29 return __method.apply(object, arguments);
30 }
31 }
32}

where line 29 will return false.
Does that ring any bells?


By the way, in the code I copied-and-pasted in my previous email, two
lines were not included which needs to be there:
setOutputMarkupId(true) on parent & content components.


Antoine

On Tue, Mar 9, 2010 at 4:37 PM, Richard Wilkinson
<richardjohnwilkin...@googlemail.com> wrote:
> Hi,
>
> 'Ajax POST stopped because of precondition check' is probably your
> problem.  all wicket ajax can have a precondition, which is basically
> a function that returns true or false, and will only execute the ajax
> if it returns true.  I expect that for some reason in your case this
> function is returning false.
>
> for an AjaxButton (well AjaxFormSubmitBehavior) the precondition is
> this: "return Wicket.$$(this)&&Wicket.$$('" + getForm().getMarkupId()
> + "')";
>
> in the wicket ajax javascript file i see this:
>
> // returns if the element belongs to current document
> // if the argument is not element, function returns true
> Wicket.$$ = function(element) {
> .......
> }
>
> This must be failing for you, which I presume has something to do with
> how you are passing the content into the qtip;
>
> content: $('#" + contentMarkupId + "').html()
>
> Hope that helps.
>
> --
> Regards - Richard Wilkinson
> Developer,
> jWeekend: OO & Java Technologies - Development and Training
> http://jWeekend.com
>
>
> On 9 March 2010 13:05, Antoine van Wel <antoine.van....@gmail.com> wrote:
>> Hi everybody,
>>
>> Integrating a Jquery tooltip (qtip) went smoothly until I tried to do
>> an Ajax form submit.
>> The Wicket Ajax Debug panel shows an "Ajax POST stopped because of
>> precondition check", so an Ajax response is never sent.
>>
>> What I'm doing is simply render the text for the tooltip on the same
>> page in a hidden div, then pointing the content of the tooltip to that
>> div.
>>
>> the html:
>>
>> <wicket:head>
>>        <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>
>>        <script type="text/javascript" 
>> src="/js/jquery.qtip-1.0.0-rc3.min.js"></script>
>> </wicket:head>
>>
>> <wicket:extend>
>>        <div wicket:id="content" style="display: none;">
>>                <form wicket:id="form">
>>                        <input type="submit" wicket:id="clickme" value="click 
>> me">
>>                </form>
>>        </div>
>>
>>        <span wicket:id="tipme">hover over me</span>
>> </wicket:extend>
>>
>> the page class:
>>
>> public class JQueryTestPage extends BasePage {
>>        public JQueryTestPage() {
>>                WebMarkupContainer content = new 
>> WebMarkupContainer("content");
>>                add(content);
>>
>>                Form<Void> form = new Form<Void>("form");
>>                content.add(form);
>>                form.add(new AjaxButton("clickme") {
>>                       �...@override
>>                        protected void onSubmit(AjaxRequestTarget target, 
>> Form<?> form) {
>>                                System.out.println("testing");
>>                        }
>>
>>                });
>>
>>                WebMarkupContainer qtip = new WebMarkupContainer("tipme");
>>                add(qtip);
>>                qtip.add(new QTipBehavior(qtip, content));
>>        }
>>
>> }
>>
>>
>> and finally the QTipBehavior:
>>
>> public class QTipBehavior extends AbstractBehavior {
>>        private String componentMarkupId;
>>        private String contentMarkupId;
>>
>>        public QTipBehavior(Component parent, Component content) {
>>                contentMarkupId = content.getMarkupId();
>>                componentMarkupId = parent.getMarkupId();
>>        }
>>
>>       �...@override
>>        public void renderHead(IHeaderResponse response) {
>>                String javascript = new StringBuilder()
>>                        .append("$(function() {")
>>                        .append("       $('#" + componentMarkupId + 
>> "').qtip({")
>>                        .append("               content: $('#" + 
>> contentMarkupId + "').html(),")
>>                        .append("               hide: { fixed: true },")
>>                        .append("               position: { corner: { target: 
>> 'topRight', tooltip:
>> 'leftTop' } },")
>>                        .append("       })")
>>                        .append("});")
>>                        .toString();
>>                response.renderOnDomReadyJavascript(javascript);
>>        }
>> }
>>
>>
>> All pretty straightforward.
>>
>> So my guess is somehow Wicket is not happy about the redirection I
>> created by not using the rendered button directly.
>> I've been trying to debug this using Firebug, obviously without success.
>>
>> Does anybody have any hints how to solve this? Is the approach I'm
>> taking flawed? Maybe jWicket or wiQuery could help here?
>>
>>
>>
>> Antoine
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>



-- 
take your photos everywhere you go - https://www.memolio.com
follow us on Twitter - http://twitter.com/Memolio

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to