калитка - вызов Ajax не сбрасывает фокус на странице - PullRequest
2 голосов
/ 20 июля 2011

У меня есть страница, которая содержит текстовое поле.Я добавил AjaxFormComponentUpdatingBehavior в текстовое поле onchange, в котором я обновляю несколько других элементов формы, основываясь на его значении.

Насколько я понимаю, wicket вернется к последнему сосредоточенному компоненту после вызова.Однако в этом случае фокус не возвращается компоненту.Показанное ошибочное поведение происходит только для первого вызова ajax, сделанного после загрузки страницы, при последующих вызовах он ведет себя нормально.

Журнал отладки wicket-ajax в случае ошибки выглядит как

INFO: Response parsed. Now invoking steps...

INFO: returned focused element: [object HTMLInputElement]

INFO: returned focused element: null

INFO: Response processed successfully.

INFO: Invoking post-call handler(s)...

INFO: refocus last focused component not needed/allowed

Теперь я не эксперт по калиткам, но заметил, что после каждого вызова ajax калитка дважды записывает значение возвращенного сфокусированного элемента, второй из которых в этом случае записывает ноль.

Я быБуду благодарен, если кто-нибудь сможет просветить меня о том, что я могу делать неправильно.Спасибо за чтение.

1 Ответ

1 голос
/ 21 июля 2011

Вот мое лучшее предположение о том, в чем может быть проблема.

Wicket отслеживает последний сфокусированный элемент, устанавливая переменную с идентификатором DOM компонента.

ЕслиИдентификатор DOM компонента изменяется во время события (Wicket может сделать это, не зная, что вы :)), последняя ссылка на элемент в интерфейсе становится недействительной.

...