当我清理Wicket上的Textfield时,如何捕获空值?

时间:2013-01-27 09:07:10

标签: ajax wicket textfield

我正在使用textfield作为我对象的日期属性。我有一个针对该领域的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();
        }
    });

1 个答案:

答案 0 :(得分:1)

而不是AjaxFormComponentUpdatingBehavior使用OnChangeAjaxBehavior

OnChangeAjaxBeahviorAjaxFormComponentUpdatingBehavior的子类。我将OnChangeAjaxBeahvior用于TextField,它的后代跟踪组件中的所有更改。它可以跨浏览器工作,并支持像剪切和粘贴以及正常编辑(onkeyup,onkeydown)这样的组件中的ale更改。当你想跟踪你在构造函数中选择的跟踪一个事件时,可以使用AjaxFormComponentUpdatingBehavior通过像"onkeydown"

那样传递字符串

我经常在AjaxFormComponentUpdatingBehavior事件中使用onblur