- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вобщем проблема в следующем, имеется много однотипных форм, на них повешен обработчик jquery form submit, который при нажатии отправки обрабатывает ее, но при полученнии данных я не могу привязатся к той форме из котрой был запрос и соответственно вывести туда результат, выдает резальтат всегда только в первую.
Вот пример кода -
Если вместо метки #output ставлю this то он не находит вобще атрибут value, а так как формы однотипные, то эта метка присутствует во всех формах и при клике на любую он результат всегда отдает в верхнюю.
Как установить фокус на нужную форму, из которой был вызов?
#output случайно не идентификатор формы?
Сама форма -
Вот примерно так выглядят однотипные формы, сама задумка в том что данные отправлять два раза, первый раз скрипт обрабатывает и возвращает назад результат, человек смотрит коректирует и уже сохраняет или нет.
у всех форм один id? тогда логично что обновляется только первая
Ну а как по другому, если id будет разный то как обойтись одним обработчиком форм?
Что если у меня 20 форм то мне надо 20 функций обрабоки назнчить?
jQuery('.pane #myForm').submit отправляет те данные которые находятся в той форме в которой я нажал отправить, а принять в ту форму данные как то можно?
Похоже Ваша проблема в том, что Вы используете на одной странице HTML-элементы с одинаковым id, что недопустимо.
У Вас несколько форм с id="myForm" и в каждой есть элемент с id="output".
Замените для myForm и output id на class
jQuery('.pane #myForm').submit(function() {
на
jQuery('.pane .myForm').submit(function() {
jQuery('#output').attr('value', responseText);
на
jQuery(this).find('.output').attr('value', responseText);
Не знаю, сработает ли последняя строка ( будет ли в данном контексте this ссылкой на форму ), но если не сработает, то можно вместо нее попробовать такую строку
jQuery(objForm).find('.output').attr('value', responseText);
но тогда объявить в начале переменную
var objForm;
jQuery(document).ready(function(){
....
и в
jQuery('.pane .myForm').submit(function() {
добавить строку
objForm=this;
сама задумка в том что данные отправлять два раза, первый раз скрипт обрабатывает и возвращает назад результат, человек смотрит коректирует и уже сохраняет или нет.
Странное решение.. что мешает ставить флаг после первой отправки формы? Если флага не стоит, то скрипт "брабатывает и возвращает назад результат", если стоит то "сохраняет или нет"? Зачем дублировать формы?
Может не правильно понял просто вас, поэтому ответ на ваши вопрос из первого сообщения:
во-первых, вам правильно сказали Ragnarok и gormarket - ID - это уникальный идентификатор, для подобных элементов используется class.
Во-вторых, не понимаю зачем вы всю работу аякса развели на кучу функций?
Конечно у this не будет value в методе showResponse... и даже в сабмите не будет value. Value будет у тега textarea вложенного в форму, соответственно, если вы пишите обработчик на submit формы, то $(".ta", $(this)).val() - будет как раз нужный вам аттрибут.. Меняйте его.. =)
gormarket Большое спасибо, помогло.
Сохранить this в переменную в моменты вызова функции мне почемуто в голову не пришло, все работает.