24.02.2016, 22:30
|
Интересующийся
|
|
Регистрация: 28.04.2010
Сообщений: 11
|
|
Доступ к динамически созданным полям формы
Всем привет!
Начал изучать JavaScript, подскажите, как сделать.
Есть форма в которой поля добавляются динамически. Уникальным атрибутом этих полей является name. Он имеет вид - [Application][i][title], где i - число. Получается своеобразный массив. К этим полям и нужен доступ, чтобы потом с каждым из них можно было управлять с помощью JavaScript. Как это сделать (лучше, проще) ? Или ткните меня где про это можно почитать. Спасибо.
|
|
25.02.2016, 09:10
|
|
Кандидат Javascript-наук
|
|
Регистрация: 11.11.2015
Сообщений: 136
|
|
Nicson,
Ну Вам должен помочь Jquery.
Но в целом достаточно размыто Вы поставили задачу. Желательно бы код выложить, как у Вас все устроено и подробности. Надеюсь ссылка Вам поможет.
|
|
25.02.2016, 20:10
|
Интересующийся
|
|
Регистрация: 28.04.2010
Сообщений: 11
|
|
Сообщение от AciDWarrioR
|
Nicson,
Ну Вам должен помочь Jquery.
Но в целом достаточно размыто Вы поставили задачу. Желательно бы код выложить, как у Вас все устроено и подробности. Надеюсь ссылка Вам поможет.
|
Спасибо. Буду пробывать. Но если не понятно, тогда расскажу, как все работает сейчас:
Корпоративный сайт, на котором работники добавляют заявки на нужные детали. Начальник потом видит эти заявки и обрабатывает. На странице добавления заявки есть форма добавления - деталей в заявке может быть сколько угодно, поэтому поля для ввода добавляются динамически. Нажимаешь на кнопку и поле добавилось. Все работает, но сейчас заявки заполняются "руками" работников и вот есть идея сделать, чтобы в одном поле работник вводил каталожный номер, а в другом появлялось название, чтобы не было ошибок ввода. Если форма статичная, то есть изначально прописана в коде - у меня все работает через ajax. Но когда делаю на этих динамических полях, тогда возникают проблемы с поиском элементов этих полей, чтобы передавать данные. Поэтому и появился этот вопрос - как можно получать доступ к динамическим полям формы. Сам сайт написан на CakePHP 2. Писал сам, поэтому если нужен еще какой то код - могу выложить или что то объяснить.
|
|
26.02.2016, 06:19
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Nicson
|
Уникальным атрибутом этих полей является name. Он имеет вид - [Application][i][title], где i - число.
|
Если имена полей будут именно такими [Application][i][title], то сервер вообще ничего не получит, это ключи без имени.
Получить к динамически добавляемому элементу, это не конкретно. Если к примеру подразумевается назначение обработчика, то лучше делегирование в этом случае. Если же обратиться к нему, то можно и по имени, вот только возникает вопрос что же это за i такое, если просто порядковый номер, то его можно без вреда и выбросить, если это признак, пусть и временный, то опять смотря чего, можно ведь его и знать.
Вопрос слишком абстрактный.
|
|
26.02.2016, 15:12
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от Nicson
|
2. Писал сам, поэтому если нужен еще какой то код - могу выложить или что то объяснить.
|
Выложите текущий HTML код формы заполненный руками(без аяксов) на два или три наименования (пустые строки наименований можно не включать, если они идентичны по структуре заполненным)
|
|
26.02.2016, 15:22
|
Интересующийся
|
|
Регистрация: 28.04.2010
Сообщений: 11
|
|
Спасибо, за советы и помощь. Вроде получилось. Сделал так: заполняешь строку данными, нажимаешь кнопку добавить строку - предыдущая становиться readonly, а в новой все работает. Может конечно, криво, но работает. Как такой вариант в плане оптимизации и быстроты работы ?
Я недавно начал работать в Явой, поэтому так. Но изучение не прекращаю, а с набором опыта буду код улучшать. Еще было бы здорово, если бы посоветовали, что почитать, чтобы побыстрей вьехать в курс дела. Спасибо всем!
|
|
26.02.2016, 15:48
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Nicson
|
Сделал так: заполняешь строку данными, нажимаешь кнопку добавить строку - предыдущая становиться readonly, а в новой все работает.
|
А если замечена ошибка в предыдущем и надо исправить? Вы не считаете нужным пояснять неизвестное, поэтому трудно судить о том правильно или нет делаете, но именование полей и описание задачи позволяют сказать - Нет.
|
|
26.02.2016, 15:50
|
Интересующийся
|
|
Регистрация: 28.04.2010
Сообщений: 11
|
|
Сообщение от laimas
|
А если замечена ошибка в предыдущем и надо исправить? Вы не считаете нужным пояснять неизвестное, поэтому трудно судить о том правильно или нет делаете, но именование полей и описание задачи позволяют сказать - Нет.
|
Извиняюсь, это правда - упускаю такие вещи из виду. Так вот - если в предыдущей ошибка - эту строку можно только удалить и написать по новой. Начальство такой вариант вроде устраивает.
|
|
26.02.2016, 16:00
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Nicson
|
Так вот - если в предыдущей ошибка - эту строку можно только удалить и написать по новой.
|
Это не правильно, вы изначально неправильно поступаете. Удалять предыдущее, чтобы удалить ошибку, это слишком.
Может все таки поясните что означают имена формы?
|
|
26.02.2016, 16:03
|
Интересующийся
|
|
Регистрация: 28.04.2010
Сообщений: 11
|
|
Сообщение от laimas
|
Это не правильно, вы изначально неправильно поступаете. Удалять предыдущее, чтобы удалить ошибку, это слишком.
Может все таки поясните что означают имена формы?
|
Это уникальное имя, по которому CakePHP "понимает" что это за поле и добавляет из него данные в базу. Это если проще.
Я бы выложил весь код формы в HTML, просто там он добавляет кучу всего и страница получается весьма большой.
А в чем не правильность того, чтобы удалить строку, если в ней ошибка ?
Попробую выложить сюда пару полей этой формы из вывода.
|
|
|
|