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