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"));
}
如果您认为 OnLoadHeaderItem
或 OnEventHeaderItem
更适合您的用例,您也可以使用它们。
我是 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"));
}
如果您认为 OnLoadHeaderItem
或 OnEventHeaderItem
更适合您的用例,您也可以使用它们。