我正在使用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();
}
});
答案 0 :(得分:1)
而不是AjaxFormComponentUpdatingBehavior
使用OnChangeAjaxBehavior
OnChangeAjaxBeahvior
是AjaxFormComponentUpdatingBehavior
的子类。我将OnChangeAjaxBeahvior
用于TextField
,它的后代跟踪组件中的所有更改。它可以跨浏览器工作,并支持像剪切和粘贴以及正常编辑(onkeyup,onkeydown)这样的组件中的ale更改。当你想跟踪你在构造函数中选择的跟踪一个事件时,可以使用AjaxFormComponentUpdatingBehavior
通过像"onkeydown"
我经常在AjaxFormComponentUpdatingBehavior
事件中使用onblur
。