Ajax 在清理Wicket上的Textfield时,如何捕获空值?
我正在使用textfield作为对象的日期属性。我有一个用于该字段的jquery ui日期选择器。问题如下 在该字段上选择日期时,我试图在AjaxFormComponentUpdateBehavior的onUpdate方法中捕获该值。问题是,我第一次得到选择的值。但是,当用户清理textfield时,我没有得到null值。因此,该值仍然具有旧的选定值,这次应改为设置为null。清理字段时不会激发onUpdate方法。我认为当清理字段时,字段的模型没有改变,这就是为什么不触发onUpdate方法的原因。如何捕获空值Ajax 在清理Wicket上的Textfield时,如何捕获空值?,ajax,wicket,textfield,Ajax,Wicket,Textfield,我正在使用textfield作为对象的日期属性。我有一个用于该字段的jquery ui日期选择器。问题如下 在该字段上选择日期时,我试图在AjaxFormComponentUpdateBehavior的onUpdate方法中捕获该值。问题是,我第一次得到选择的值。但是,当用户清理textfield时,我没有得到null值。因此,该值仍然具有旧的选定值,这次应改为设置为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();
}
});
surveyrandevudetpicker=new TextField(“surveyrandevudetpicker”,新属性模型(itemModel,“surveyrandevudetdisplay”);
添加(新的AjaxFormComponentUpdateBehavior(“onkeydown”){
私有静态最终长serialVersionUID=8745814248540998760L;
@凌驾
受保护的void onUpdate(AjaxRequestTarget目标){
surveyRandevuSelectedValue=surveyRandevuDatePicker.getModelObject();
}
});
使用
OnChangeAjaxBeahvior
是AjaxFormComponentUpdateingBehavior
的子类。我使用OnChangeAjaxBeahvior
作为TextField
及其子体来跟踪组件中的所有更改。它可以跨浏览器工作,并支持组件中的ale更改,如剪切和粘贴以及正常编辑(onkeyup、onkeydown)<代码>AjaxFormComponentUpdateingBehavior可用于跟踪在构造函数中选择的一个事件,方法是传递一个字符串,就像在“onkeydown”
我经常将
ajaxformcomponentupdatebehavior
与onblur
事件一起使用。而不是ajaxformcomponentupdatebehavior
使用
OnChangeAjaxBeahvior
是AjaxFormComponentUpdateingBehavior
的子类。我使用OnChangeAjaxBeahvior
作为TextField
及其子体来跟踪组件中的所有更改。它可以跨浏览器工作,并支持组件中的ale更改,如剪切和粘贴以及正常编辑(onkeyup、onkeydown)<代码>AjaxFormComponentUpdateingBehavior可用于跟踪在构造函数中选择的一个事件,方法是传递一个字符串,就像在“onkeydown”
我经常在onblur事件中使用
ajaxFormComponentUpdateingBehavior
。使用onChangeAjaxBehavior似乎有效。实际上有什么区别?我更新了我的答案来回答你的其他问题。如果有帮助,请接受。谢谢您的回答。我不明白的是以下几点。为什么AjaxFormComponentUpdateingBehavior不捕获空值,即当用户删除textfield上的值时。那是钥匙放下的时候,对吗?老实说我不知道。我只能猜测您应该尝试使用onkeyup
,因为在onkeydown
中,新值尚未传递给组件。您还可以重写getUpdateModel()
并返回Boolean.TRUE
。您能接受我的回答吗?使用onChangeAjaxBehavior似乎有效。实际上有什么区别?我更新了我的答案来回答你的其他问题。如果有帮助,请接受。谢谢您的回答。我不明白的是以下几点。为什么AjaxFormComponentUpdateingBehavior不捕获空值,即当用户删除textfield上的值时。那是钥匙放下的时候,对吗?老实说我不知道。我只能猜测您应该尝试使用onkeyup
,因为在onkeydown
中,新值尚未传递给组件。您还可以重写getUpdateModel()
并返回Boolean.TRUE
。你能接受我的回答吗?