Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 在清理Wicket上的Textfield时,如何捕获空值?_Ajax_Wicket_Textfield - Fatal编程技术网

Ajax 在清理Wicket上的Textfield时,如何捕获空值?

Ajax 在清理Wicket上的Textfield时,如何捕获空值?,ajax,wicket,textfield,Ajax,Wicket,Textfield,我正在使用textfield作为对象的日期属性。我有一个用于该字段的jquery ui日期选择器。问题如下 在该字段上选择日期时,我试图在AjaxFormComponentUpdateBehavior的onUpdate方法中捕获该值。问题是,我第一次得到选择的值。但是,当用户清理textfield时,我没有得到null值。因此,该值仍然具有旧的选定值,这次应改为设置为null。清理字段时不会激发onUpdate方法。我认为当清理字段时,字段的模型没有改变,这就是为什么不触发onUpdate方法的

我正在使用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
。你能接受我的回答吗?