1

我正在使用文本字段作为对象的日期属性。我有一个用于该字段的 jquery-ui 日期选择器。问题如下。

当我在该字段上选择一个日期时,我试图在 AjaxFormComponentUpdatingBehavior 的 onUpdate 方法中捕获该值。问题是,我是第一次获得选定的值。但是,当用户清理文本字段时,我没有得到空值。因此该值仍然具有旧的选定值,这次应该将其设置为 null。清除字段时不会触发 onUpdate 方法。我认为清理字段时不会更改字段的模型,这就是不触发 onUpdate 方法的原因。如何捕获空值?

    surveyRandevuDatePicker = new TextField<String>("surveyRandevuDatePicker", new PropertyModel<String>(itemModel, "surveyRandevuDisplay"));

    surveyRandevuDatePicker.add(new AjaxFormComponentUpdatingBehavior("onkeydown") {
        private static final long serialVersionUID = 8745814248540998760L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            surveyRandevuSelectedValue = surveyRandevuDatePicker.getModelObject();
        }
    });
4

1 回答 1

1

而不是AjaxFormComponentUpdatingBehavior使用OnChangeAjaxBehavior

OnChangeAjaxBeahvior是 的子类AjaxFormComponentUpdatingBehavior。我使用OnChangeAjaxBeahviorforTextField和它的后代来跟踪组件中的所有更改。它可以跨浏览器工作,并支持组件中的 ale 更改,例如剪切和粘贴以及正常编辑(onkeyup、onkeydown)。AjaxFormComponentUpdatingBehavior然后,当您想通过传递一个字符串来跟踪您在构造函数中选择的一个事件时,可以使用它"onkeydown"

AjaxFormComponentUpdatingBehavior经常在onblur活动中使用。

于 2013-01-27T10:34:49.340 回答