История изменений
Исправление
stevejobs,
(текущая версия)
:
виджет выглядит как список с кнопочками + и -. Список можно редактировать с помощью этих кнопок. При добавлении нового элемента, его значение заполняется значением с самого верхнего элемента в списке, а верхний элемент обнуляется. Такой как бы стек получается.
у меня сейчас поле не клонируется, а на манер какого-нибудь реакта лежит в переменной-шаблоне. У шаблона есть структура. Переменные типа {name} и {index}, флаги какую часть шаблона надо клонировать а какую нет (н-р даты т.е. инпуты с классом datepicker у меня не должны копироваться, а текстовые инпуты - должны, и это настраивается в параметрах), и так далее и тому подобное. Когда из середины списка удаляется элемент, нужно переиндексировать нумерацию элементов (нужно чтобы нумерация id и name внутри списка была непрерывной). Далее к этому надо привязать серверную валидацию Спринга и клиентскую валидацию jQueryValidation/MaskedInput/итп, чтобы они понимали сущность поля, у которого ошибка может быть в трех ипостасях: на весь список целиком, на конкретный элемент списка, и на конкретный инпут внутри элемента
отдельный вопрос будет, когда нужно будет делать такие списки вложенными, т.е. элементами списка будут другие списки. у меня для этого есть зачатки кода, но работают плохо
все это занимает дочерта кода
и вот я не хочу такое писать, очевидно же что это очень generic задача, которая тысячу раз решалась всеми подряд. По сути задача такая: как превратить одиночный инпут в array из таких инпутов.
и я не хочу тянуть angular (да и не могу, потому что заявляена поддержка старых Internet Explorer)
Исправление
stevejobs,
:
виджет выглядит как список с кнопочками + и -. Список можно редактировать с помощью этих кнопок. При добавлении нового элемента, его значение заполняется значением с самого верхнего элемента в списке, а верхний элемент обнуляется. Такой как бы стек получается.
у меня сейчас поле не клонируется, а на манер какого-нибудь реакта лежит в переменной-шаблоне. У шаблона есть структура. Переменные типа {name} и {index}, флаги какую часть шаблона надо клонировать а какую нет (н-р даты т.е. инпуты с классом datepicker у меня не должны копироваться, а текстовые инпуты - должны, и это настраивается в параметрах), и так далее и тому подобное. Когда из середины списка удаляется элемент, нужно переиндексировать нумерацию элементов (нужно чтобы нумерация id и name внутри списка была непрерывной). Далее к этому надо привязать серверную валидацию Спринга и клиентскую валидацию jQueryValidation/MaskedInput/итп, чтобы они понимали сущность поля, у которого ошибка может быть в трех ипостасях: на весь список целиком, на конкретный элемент списка, и на конкретный инпут внутри элемента
отдельный вопрос будет, когда нужно будет делать такие списки вложенными, т.е. элементами списка будут другие списки. у меня для этого есть зачатки кода, но работают плохо
все это занимает дочерта кода
и вот я не хочу такое писать, очевидно же что это очень generic задача, которая тысячу раз решалась всеми подряд
и я не хочу тянуть angular (да и не могу, потому что заявляена поддержка старых Internet Explorer)
Исходная версия
stevejobs,
:
виджет выглядит как список с кнопочками + и -. Список можно редактировать с помощью этих кнопок. При добавлении нового элемента, его значение заполняется значением с самого верхнего элемента в списке, а верхний элемент обнуляется. Такой как бы стек получается.
у меня сейчас поле не клонируется, а на манер какого-нибудь реакта лежит в переменной-шаблоне. У шаблона есть структура. Переменные типа {name} и {index}, флаги какую часть шаблона надо клонировать а какую нет (н-р даты т.е. инпуты с классом datepicker у меня не должны копироваться, а текстовые инпуты - должны, и это настраивается в параметрах), и так далее и тому подобное. Когда из середины списка удаляется элемент, нужно переиндексировать нумерацию элементов (нужно чтобы нумерация id и name внутри списка была непрерывной). Далее к этому надо привязать серверную валидацию Спринга и клиентскую валидацию jQueryValidation/MaskedInput/итп, чтобы они понимали сущность поля, у которого ошибка может быть в трех ипостасях: на весь список целиком, на конкретный элемент списка, и на конкретный инпут внутри элемента
отдельный вопрос будет, когда нужно будет делать такие списки вложенными, т.е. элементами списка будут другие списки. у меня для этого есть зачатки кода, но работают плохо
и вот я не хочу такое писать, очевидно же что это очень generic задача, которая тысячу раз решалась всеми подряд
и я не хочу тянуть angular (да и не могу, потому что заявляена поддержка старых Internet Explorer)