2015-04-29 121 views
2

我有一些我在Wicket中不理解的東西。 我用一個覆蓋方法onSubmit()與我的HTML頁面鏈接創建了一個AJAX按鈕。一旦我按下按鈕,該方法就不會被調用。AjaxButton onSubmit not called

在這裏,JAVA代碼:

AjaxButton savebutton = (AjaxButton) new AjaxButton("save_ext", form) { 

     @Override 
     protected void onError(AjaxRequestTarget target, Form<?> form) { 
      super.onError(target, form); //To change body of generated methods, choose Tools | Templates. 
      System.out.println("save button ajax error"); 
     } 

     @Override 
     public void onSubmit(AjaxRequestTarget target, Form<?> form) { 

      System.out.println("save form"); 
    }.setOutputMarkupId(true); 

form.add(savebutton);

這裏的HTML:

<button type="submit" value="save" wicket:id="save_ext" class="btn btn-success" id="buttonSave_ext" onclick="saveFunction()">Save</button> 

你有一個想法如何解決這個問題。

感謝

回答

0

入住DevTools /螢火蟲是否有通過點擊按鈕做一個Ajax請求。我看到你的標記中有一個「onclick」函數。如果返回false,則其他事件偵聽器將不會被執行,即Wicket的點擊偵聽器不會觸發Ajax調用來通知服務器端。

+0

我查過了,我有IBehaviourListener。當我按下按鈕時,我看不到AjaxRequest,但是我的JavaScript函數工作並返回true。我如何獲得Ajax請求? – user3774233

+0

首先嚐試刪除「onclick」。如果這沒有幫助,那麼在https://github.com/apache/wicket/blob/wicket-6.x/wicket-core/src/main/java/org/apache/wicket/ajax/res /js/wicket-ajax-jquery.js#L554,看看它在哪裏。也許有一些先決條件? –

+0

我試圖刪除onclick標記,仍然是同樣的問題。我檢查了Firebug,我只收到一個GET IBehaviourListener,並沒有發佈POST。這是什麼意思?我應該收到一個POST嗎? – user3774233