簡體   English   中英

Apache Wicket:隱藏/顯示后textarea丟失內容

[英]Apache Wicket: textarea lose content after hide/show

我有帶復選框和textarea的檢票口形式。 復選框值更改時,我需要隱藏和顯示textarea。

這是我的實現:

private class EditCommentForm extends Form {

    private TextArea applyToAllArea;
    private boolean addToAll;

    // some code here

    public EditCommentForm(String id) {
        super(id);
        applyToAllArea = new TextArea<>("applyToAllArea", Model.of(""));
        applyToAllArea.setVisible(addToAll);
        applyToAllArea.setOutputMarkupId(true);
        applyToAllArea.setOutputMarkupPlaceholderTag(true);
        add(applyToAllArea);

        CheckBox addToAllCheckbox = new AjaxCheckBox("addToAll", new PropertyModel<>(this, "addToAll")) {
            @Override
            protected void onUpdate(AjaxRequestTarget target) {
                applyToAllArea.setVisible(addToAll);
                target.addComponent(applyToAllArea);
            }
        };
        addToAllCheckbox.setVisible(documents.size() > 1);
        add(addToAllCheckbox);
        // some code here
    }

    private boolean isAddToAll() {
        return addToAll;
    }

}

當我在textarea中鍵入一些信息,然后兩次單擊復選框(隱藏並顯示textarea)時,我鍵入的信息丟失。

那么,如何在不提交表單的情況下保存鍵入的信息?

Wicket版本1.4.20

正如@bert解釋的那樣,問題在於文本區域的內容無論如何都不會保存,並且在重新繪制后,Wicket在服務器端使用了空的當前模型。

一個簡單的解決方案是將new AjaxFormComponentUpdatingBehavior("onblur")到文本區域,以便在用戶移動到頁面中的另一個元素時保存其內容。

我建議您至少升級到1.4.22。 與1.4.20相比,它幾乎沒有與安全相關的修復程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM