Turns out "Wicket.$$(this)" returned false after all. Thanks Richard!
I ended up adapting the AjaxButton by simply kicking out the Wicket.$$(this) of the pre-condition check. So can anybody tell me what this "Wicket.$$(this)" is good for ... I got a gut-feeling what I've done is not such a good idea :-) Antoine On Tue, Mar 9, 2010 at 6:44 PM, Antoine van Wel <antoine.van....@gmail.com> wrote: > 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