2012-05-20 59 views
0

我製作了一個使用Tapestry5-JQuery並啓用了JQuery UI的應用程序。我創建了一個頁面,這樣定義一個jQuery的對話框:Tapestry5-JQuery對話框按鈕事件沒有觸發

<t:form> 
    <t:jquery.dialoglink t:dialog="dlgUrl">Show Dialog</t:jquery.dialoglink> 

    <t:jquery.dialog t:clientId="dlgUrl" params="dlgUrlParams"> 
    <table class="dlgContent"> 
     <tr> 
      <td><t:label for="urlName" class="dlgLabel" /></td> 
      <td><t:textfield t:id="urlName" value="name" class="dlgComponent" label="Name:" /> 
      </td> 
     </tr> 
     <tr> 
      <td><t:label for="url" class="dlgLabel" /></td> 
      <td><t:textfield t:id="url" value="url" class="dlgComponent" label="Url:" /> 
      </td> 
     </tr> 
    </table> 
    <div class="dlgBtnAlign"> 
     <t:submit class="ui-button ui-widget" value="Ok" t:id="dlgUrlOk"/> 
    </div> 
    </t:jquery.dialog> 
</t:form> 

的頁面相關的Java類是這樣的:

public class DialogTestPage { 
public JSONObject getDlgUrlParams() { 
    JSONObject jsonObject = new JSONObject(); 
    jsonObject.put("title", "URL"); 
    jsonObject.put("modal", "true"); 
    jsonObject.put("dialogClass", "dlgFileAdjust"); 
    return jsonObject; 
} 

@OnEvent(value = EventConstants.SELECTED, component = "dlgUrlOk") 
void onClickDlgUrlOk() { 
    //Run code after clicking ok 
} 

void onSuccess(){ 
    //Run code after form submit 
}} 

當我運行應用程序,「OK」按鈕不火SELECTED事件,而不是onSuccess處理程序。

謝謝。

回答

1

DialogLink不會觸發任何事件,DialogAjaxLink會(EventConstants.ACTION)! DialogAjaxLink還允許您更新區域。

<t:jquery.dialogajaxlink t:dialog="dlgUrl" t:zone="myZone">show dialog</t:jquery.dialogajaxlink> 

http://tapestry5-jquery.com/components/docsjquerydialog

如果你想成功的事件被解僱,你需要提交表單。無論是通過使用提交按鈕或者如果你喜歡的鏈接,你可以使用LinkSubmit組件: http://tapestry5-jquery.com/core/docslinksubmit

+0

我的問題是與顯示與對話框鏈接對話框無關。我的問題是,對話框標籤內的按鈕不會觸發事件。謝謝。 – dovahkiin

+0

好吧,我的壞。問題是你無法將對話框封裝在表單中。該插件將對話框容器移動到您的DOM底部,因此提交按鈕實際上不在表單內。 – criedel

+0

謝謝。把表單標籤放在t:jquery.dialog中解決了這個問題。 – dovahkiin

相關問題