我已经制作并使用Tapestry5-JQuery并启用了JQuery UI的应用程序。我创建了一个页面,其中包含一个如下所示的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处理程序。
感谢。
答案 0 :(得分: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