2016-05-11 6 views
0

Ich habe eine Seite wie diese.wicket form event onsubmit funktioniert nicht bei V6.X

HTML

<form wicket:id="form" onsubmit="alert('form submit')"> 

<input type="text" name="name"> 

<!-- Wicket1.5.X form.onsubmit working --> 
<!-- Wicket6.X form.onsubmit can not work --> 
<input wicket:id="ajaxFallbackButton" type="submit"> 

<!-- form.onsubmit works fine --> 
<input wicket:id="submitBtn" type="submit"> 

</form> 

Java

Form<Void> form = new Form<Void>("form"); 
    form.setOutputMarkupId(true); 
    add(form); 

    AjaxFallbackButton ajaxFallbackButton = new AjaxFallbackButton("ajaxFallbackButton", new Model<String>("AjaxFallbackButton"), form) { 
     private static final long serialVersionUID = 1L; 

     @Override 
     protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 
      System.out.println("ajaxFallbackButton onSubmit"); 
     } 
    }; 
    form.add(ajaxFallbackButton); 

    Button button = new Button("submitBtn", new Model<String>("Button")); 
    form.add(button); 

Warum das Ereignis der Form int die HTML definiert onsubmit kann nicht funktionieren, wenn ichWicket V6.X verwendet?


Dank für svenmeier, fest ich es durch Überschreibung der AjaxFallbackButton.updateAjaxAttributes Methode.

@Override 
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { 
    super.updateAjaxAttributes(attributes); 

    AjaxCallListener ajaxCallListener = new AjaxCallListener(); 
    ajaxCallListener.onPrecondition("alert('form submit')"); 
    attributes.getAjaxCallListeners().add(ajaxCallListener); 

} 

Antwort

Verwandte Themen