java - 如何通过 wicket ajax 行为捕获来自 <input type ="date"> 的事件?

标签 java wicket

我有一个输入字段:

<input type="date" wicket:id="date">

并尝试在 js 中捕获更改事件,如下所示:

let dateInput = document.querySelector('input[type=date]');
dateInput.onchange = log;


function log() {
   console.log(this + " - " +event+": " + this.value);
}

但是在java中有些行为如下:

DateTextField dateField = new DateTextField("dateField");
dateField.add(new AjaxEventBehavior("onchange") {
    @Override
    protected void onEvent(AjaxRequestTarget target) {
        System.out.println("hello");
    }
}

或者

DateTextField dateField = new DateTextField("dateField");
dateField.add(new OnChangeAjaxBehavior() {
    @Override
    protected void onUpdate(AjaxRequestTarget target) {
        System.out.println("hello");
    }
});

或者

DateTextField dateField = new DateTextField("dateField");
dateField.add(new AjaxFormComponentUpdatingBehavior("onchange") {
    @Override
    protected void onUpdate(AjaxRequestTarget target) {
        System.out.println("hello");
    }
});

无法捕捉此事件。

DateTextField 是 org.apache.wicket.extensions.markup.html.form.DateTextField;

最佳答案

我找到了解决方案 - 需要正确的日期模式,输入的模式必须与 java Date 的模式匹配。 这是工作:

DateTextField dateField= new DateTextField("dateField", Model.of(new Date()),"yyyy-MM-dd");
dateField.add(new OnChangeAjaxBehavior() {
    @Override
    protected void onUpdate(AjaxRequestTarget target) {
        System.out.println("hello");
    }
});

关于java - 如何通过 wicket ajax 行为捕获来自 &lt;input type ="date"> 的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59476498/

相关文章:

javascript - 如何使用 Java 将日期设置为 javascript 对象?

java - 在 wicket 应用程序中使用什么方法注销?

java - Wicket - Apache URL 重写 Access-Control-Allow-Origin 问题

Kotlin 中的 Wicket NumberTextField 在提交时抛出 ClassCastException

java - 请帮助尝试对数组Java进行排序

Java:将包含文件和目录的目录移动到新路径

java - 将 JList 值从 JFrame 传递到 JDialog

java - Android 保存 EditText 并在下次应用打开时调用它

java - Wicket 标记继承不适用于 wicket :child tags within MarkupContainers

java - 在 wicket 中看到 http 请求