You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by "Brown, Berlin [GCG-PFS]" <Be...@Primerica.com> on 2011/01/28 04:46:41 UTC

Submit form from ajaxlink not a part of the form

So, I was able to submit a form WITHOUT ajax.  Now, how can I submit a
form with ajax but from a link not associated with that form.  I tried
the following.    But, I couldn't get the proper URLs / Button?   Are
those needed for the wicketSubmFormById call?
 
Also, do i have an issue using target.appendJavascript(...);
 
...
 
If you look at the event handler method, 
 
public class MyPanel {
 
public static final String
JS_SUBMIT_THIS_WORKS_BUT_HOW_TO_SUBMIT_BY_AJAX = "try {
document.forms['%s'].submit(); } catch(err) { alert('ERR:' + err); if
(window.console != undefined) { console.log(err); } }";
 
this.add(new AjaxLink<Object>("link") {                    
            @Override
            public void onClick(final AjaxRequestTarget target) {

                // Find the dynamic form on the page. 
                final Object objAtStopTraversal =
getParentContainer().visitChildren(new FindFormVisitor());
                if (objAtStopTraversal instanceof Form<?>) {
                    // Form found, invoke javascript submit
                    final Form<?> form = (Form<?>) objAtStopTraversal;

 
target.appendJavascript(getEventHandler(form.getMarkupId(), ???, this));
                }
            }                                                    
        } );
 
protected CharSequence getEventHandler(final String formMarkupId, final
String inputName, final AbstractLink link) {
        final String formId = formMarkupId;
        final CharSequence url = ????????????????
        AppendingStringBuffer call = new AppendingStringBuffer("var
wcall=wicketSubmitFormById('")
        .append(formId).append("', '").append(url).append("', ");

        call.append("'")
        .append(inputName)
        .append("' ");
        call.append(",function() { }.bind(this),function() {
}.bind(this), function() { }.bind(this));;; return false;;");        
        return call;
    }
 
Berlin Brown

RE: Submit form from ajaxlink not a part of the form

Posted by "Brown, Berlin [GCG-PFS]" <Be...@Primerica.com>.
I got it.

But I passed function() { return true; } ... To the post and preconditions. 

-----Original Message-----
From: Igor Vaynberg [mailto:igor.vaynberg@gmail.com] 
Sent: Friday, January 28, 2011 12:52 AM
To: users@wicket.apache.org
Cc: berlin.brown@gmail.com
Subject: Re: Submit form from ajaxlink not a part of the form

add(new ajaxsubmitlink("submit", form));

-igor

On Thu, Jan 27, 2011 at 7:46 PM, Brown, Berlin [GCG-PFS] <Be...@primerica.com> wrote:
> So, I was able to submit a form WITHOUT ajax.  Now, how can I submit a 
> form with ajax but from a link not associated with that form.  I tried 
> the following.    But, I couldn't get the proper URLs / Button?   Are 
> those needed for the wicketSubmFormById call?
>
> Also, do i have an issue using target.appendJavascript(...);
>
> ...
>
> If you look at the event handler method,
>
> public class MyPanel {
>
> public static final String
> JS_SUBMIT_THIS_WORKS_BUT_HOW_TO_SUBMIT_BY_AJAX = "try { 
> document.forms['%s'].submit(); } catch(err) { alert('ERR:' + err); if 
> (window.console != undefined) { console.log(err); } }";
>
> this.add(new AjaxLink<Object>("link") {
>            @Override
>            public void onClick(final AjaxRequestTarget target) {
>
>                // Find the dynamic form on the page.
>                final Object objAtStopTraversal = 
> getParentContainer().visitChildren(new FindFormVisitor());
>                if (objAtStopTraversal instanceof Form<?>) {
>                    // Form found, invoke javascript submit
>                    final Form<?> form = (Form<?>) objAtStopTraversal;
>
>
> target.appendJavascript(getEventHandler(form.getMarkupId(), ???, 
> this));
>                }
>            }
>        } );
>
> protected CharSequence getEventHandler(final String formMarkupId, 
> final String inputName, final AbstractLink link) {
>        final String formId = formMarkupId;
>        final CharSequence url = ????????????????
>        AppendingStringBuffer call = new AppendingStringBuffer("var
> wcall=wicketSubmitFormById('")
>        .append(formId).append("', '").append(url).append("', ");
>
>        call.append("'")
>        .append(inputName)
>        .append("' ");
>        call.append(",function() { }.bind(this),function() { 
> }.bind(this), function() { }.bind(this));;; return false;;");
>        return call;
>    }
>
> Berlin Brown
>

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




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


RE: Submit form from ajaxlink not a part of the form

Posted by "Brown, Berlin [GCG-PFS]" <Be...@Primerica.com>.
I added a kind of dummy ajax submit link on that form and then try to invoke that link...  When I get a reference to the callback URL.  Here is the error.

Is there a way to debug that object error?   I could try changing:

1. ignore if not active to false?
2. changing some of the parameters to the submit call?
3. hiddenSubmitLink ...maybe that is not the correct path to that link... Maybe I need to try 
   panel:form:hiddenSubmitLink...etc?

>From the Debug Window:

INFO: 
<?xml version="1.0" encoding="UTF-8"?><ajax-response><evaluate><![CDATA[var wcall=wicketSubmitFormById('form5e', '?wicket:interface=:0:panel:form:hiddenSubmitLink::IActivePageBehaviorListener:0:-1&wicket:ignoreIfNotActive=true', 'hiddenSubmitLink' ,function() { }.bind(this),function() { }.bind(this), function() {return Wicket.$$(this)&&Wicket.$$('form5e')}.bind(this));;; return false;]]></evaluate></ajax-response>
INFO: Response parsed. Now invoking steps...
ERROR: Wicket.Ajax.Call.processEvaluation: Exception evaluating javascript: [object Error]
INFO: Response processed successfully. 

-----Original Message-----
From: Igor Vaynberg [mailto:igor.vaynberg@gmail.com] 
Sent: Friday, January 28, 2011 12:52 AM
To: users@wicket.apache.org
Cc: berlin.brown@gmail.com
Subject: Re: Submit form from ajaxlink not a part of the form

add(new ajaxsubmitlink("submit", form));

-igor

On Thu, Jan 27, 2011 at 7:46 PM, Brown, Berlin [GCG-PFS] <Be...@primerica.com> wrote:
> So, I was able to submit a form WITHOUT ajax.  Now, how can I submit a 
> form with ajax but from a link not associated with that form.  I tried 
> the following.    But, I couldn't get the proper URLs / Button?   Are 
> those needed for the wicketSubmFormById call?
>
> Also, do i have an issue using target.appendJavascript(...);
>
> ...
>
> If you look at the event handler method,
>
> public class MyPanel {
>
> public static final String
> JS_SUBMIT_THIS_WORKS_BUT_HOW_TO_SUBMIT_BY_AJAX = "try { 
> document.forms['%s'].submit(); } catch(err) { alert('ERR:' + err); if 
> (window.console != undefined) { console.log(err); } }";
>
> this.add(new AjaxLink<Object>("link") {
>            @Override
>            public void onClick(final AjaxRequestTarget target) {
>
>                // Find the dynamic form on the page.
>                final Object objAtStopTraversal = 
> getParentContainer().visitChildren(new FindFormVisitor());
>                if (objAtStopTraversal instanceof Form<?>) {
>                    // Form found, invoke javascript submit
>                    final Form<?> form = (Form<?>) objAtStopTraversal;
>
>
> target.appendJavascript(getEventHandler(form.getMarkupId(), ???, 
> this));
>                }
>            }
>        } );
>
> protected CharSequence getEventHandler(final String formMarkupId, 
> final String inputName, final AbstractLink link) {
>        final String formId = formMarkupId;
>        final CharSequence url = ????????????????
>        AppendingStringBuffer call = new AppendingStringBuffer("var
> wcall=wicketSubmitFormById('")
>        .append(formId).append("', '").append(url).append("', ");
>
>        call.append("'")
>        .append(inputName)
>        .append("' ");
>        call.append(",function() { }.bind(this),function() { 
> }.bind(this), function() { }.bind(this));;; return false;;");
>        return call;
>    }
>
> Berlin Brown
>

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




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


Re: Submit form from ajaxlink not a part of the form

Posted by Igor Vaynberg <ig...@gmail.com>.
add(new ajaxsubmitlink("submit", form));

-igor

On Thu, Jan 27, 2011 at 7:46 PM, Brown, Berlin [GCG-PFS]
<Be...@primerica.com> wrote:
> So, I was able to submit a form WITHOUT ajax.  Now, how can I submit a
> form with ajax but from a link not associated with that form.  I tried
> the following.    But, I couldn't get the proper URLs / Button?   Are
> those needed for the wicketSubmFormById call?
>
> Also, do i have an issue using target.appendJavascript(...);
>
> ...
>
> If you look at the event handler method,
>
> public class MyPanel {
>
> public static final String
> JS_SUBMIT_THIS_WORKS_BUT_HOW_TO_SUBMIT_BY_AJAX = "try {
> document.forms['%s'].submit(); } catch(err) { alert('ERR:' + err); if
> (window.console != undefined) { console.log(err); } }";
>
> this.add(new AjaxLink<Object>("link") {
>            @Override
>            public void onClick(final AjaxRequestTarget target) {
>
>                // Find the dynamic form on the page.
>                final Object objAtStopTraversal =
> getParentContainer().visitChildren(new FindFormVisitor());
>                if (objAtStopTraversal instanceof Form<?>) {
>                    // Form found, invoke javascript submit
>                    final Form<?> form = (Form<?>) objAtStopTraversal;
>
>
> target.appendJavascript(getEventHandler(form.getMarkupId(), ???, this));
>                }
>            }
>        } );
>
> protected CharSequence getEventHandler(final String formMarkupId, final
> String inputName, final AbstractLink link) {
>        final String formId = formMarkupId;
>        final CharSequence url = ????????????????
>        AppendingStringBuffer call = new AppendingStringBuffer("var
> wcall=wicketSubmitFormById('")
>        .append(formId).append("', '").append(url).append("', ");
>
>        call.append("'")
>        .append(inputName)
>        .append("' ");
>        call.append(",function() { }.bind(this),function() {
> }.bind(this), function() { }.bind(this));;; return false;;");
>        return call;
>    }
>
> Berlin Brown
>

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