0

JQuery UI を有効にして Tapestry5-JQuery を使用するアプリケーションを作成しました。次のように定義された 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 ハンドラも起動しません。

ありがとう。

4

1 に答える 1

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

于 2012-05-23T14:23:42.480 に答える