Wicket TextField - 添加 Javascript

Wicket TextField - Adding Javascript

我是 Wicket 的新手,在配置 Wicket 中的文本字段时遇到问题。我需要在此文本字段配置期间添加一些 Java 脚本,以便我可以将其转换为 Bootstrap Datepicker 元素(我已经使用过 DateTimeField 和 DateTextField,它们添加了日历、小时和分钟字段,我不不想)

我试过下面的代码 -

HTML

<div class="input">
    <div class="input-group date">
        <input wicket:id="dateValue" class="std" style="color: black;" type="text" value="Date value" />
        <span class="input-group-addon dateTimePick"><span class="glyphicon glyphicon-calendar"></span></span>
    </div>
</div>

Java

private TextField<String> addValueDatePickerNew(final MarkupContainer parent, final String id, final IModel<String> model)
{
    final TextField<String> result = new TextField<String>(id, model) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onConfigure()
        {
            setVisibilityAllowed(true);
            setRequired(true);
        }

        @Override
        protected void onComponentTag(ComponentTag tag) 
        {
            super.onComponentTag(tag);
            String jsDateField = "{console.log('From ReportFilterValueEditor');}";
            tag.put("onload", jsDateField);
        }
    };

    result.setOutputMarkupId(true);
    parent.add(result);
    return result;
}

上面的代码有效并在加载期间添加了 JS 语句,但是,寻找另一种方法来添加 Java 脚本,以便我可以执行更多行的 JS 来实现我需要的功能。

你需要使用

 @Override void renderHead(IHeaderResponse response) {
    response.render(OnDomReadyHeaderItem.forScript("some valid JavaScript Here"));
 }

如果您认为 OnLoadHeaderItemOnEventHeaderItem 更适合您的用例,您也可以使用它们。