Первое, что пришло на ум я думал бы, что необходимо будет поддержать некоторую форму структуры данных в JavaScript, который отражает объекты в текущем выпадающем списке. Вам также была бы нужна ссылка на в настоящее время активное / выбранный пункт.
Каждый раз keyup
или keydown
запущен, обновите ссылку на активное / выбранный пункт в структуре данных. Для предоставления выделяющейся информации о UI добавьте или удалите имя класса, которое разрабатывается с помощью CSS на основе того, если объект активный/выбирает или нет.
кроме того, это не biggy, но innerHTML
не является действительно стандартным (изучите createTextNode()
, createElement()
, и appendChild()
для стандартных способов создать данные). Можно также хотеть заняться присоединением обработчиков событий в JavaScript вместо того, чтобы делать так в HTML-атрибуте.
Вам необходимо объявить это в контексте вашего приложения:
<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors"><map>
<entry key="java.math.BigDecimal">
<bean class="org.springframework.beans.propertyeditors.CustomNumberEditor">
... <!-- specify constructor-args here -->
</bean>
</entry>
</map></property>
</bean>
Подробности здесь
Если вы используете контроллер на основе аннотаций (Spring 2.5+), вы можете использовать WebBindingInitializer для регистрации редакторов глобальных свойств. Что-то вроде
public class GlobalBindingInitializer implements WebBindingInitializer {
public void initBinder(WebDataBinder binder, WebRequest request) {
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
}
}
Итак, в файле контекста веб-приложения объявите
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="GlobalBindingInitializer"/>
</property>
</bean>
Таким образом, все контроллеры на основе аннотаций могут использовать любой редактор свойств, объявленный в GlobalBindingInitializer.