Я использую Wicket 6.xx, и у меня есть Wicket Form
, который я использую для загрузки некоторых файлов. Это не проблема. Проблема в том, что мне нужно запустить JavaScript на странице после того, как форма была отправлена, чтобы показать модальное всплывающее окно, основанное на JavaScript.Wicket: запустить JavaScript при отправке формы
Однако я не могу этого сделать, потому что у меня нет объекта AjaxRequestTarget
, так как подача формы не является вызовом Ajax. Или, по крайней мере, я предполагаю, что это причина. Я попытался следующий, взятые из другого потока, но он не работает:
From<RequestInfo> uploadFrm = new Form<RequestInfo>("uploadFrm", getModel()) {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit() {
AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class);
target.appendJavascript("..."); //NullPointerException: target is always null
}
};
Как вы можете сказать, из комментария я поставил там, target
всегда null
.
Каков правильный способ запускать JavaScript в такой ситуации? Есть ли правильный путь?
Я пробовал это решение, но не знал об переопределении «isTemporary», и я не мог найти, как удалить его после рендеринга. Спасибо за информацию, в конце концов пошла с решением ajax, но это хорошая альтернатива, +1 –