Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.05.2012, 16:05
Интересующийся
Отправить личное сообщение для klev2004 Посмотреть профиль Найти все сообщения от klev2004
 
Регистрация: 05.04.2012
Сообщений: 25

Несколько форм с одним классом + submit
Проблема следующая:
на странице формируются N-форм одинаковых внешне, но с разным содержимым. С помощью js сохранение информации из формы происходит сразу же при изменении какого-либо поля формы.
К примеру, элемент с классом list по событию change (это select) инициирует отправку данных (submit) из формы с классом form.

$('.list').change(function() { 
    $('.form').submit();
    return false;
});


Работает все хорошо, но, по понятным причинам, отправляется информация сразу из всех форм с этим классом, а должно отправляться только из той, в которой были произведены изменения.

Подскажите, пожалуйста, красивое решение проблемы.
Ответить с цитированием
  #2 (permalink)  
Старый 25.05.2012, 16:28
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Ну так правильно иначе и быть не должно.
$('.list').change(function() { 
    $(this).parents('form').submit();
    return false;
});

Только вот непонятно, зачем тут submit, обычно такие вещи кладут на плечи ajaxу.
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 25.05.2012, 17:27
Интересующийся
Отправить личное сообщение для klev2004 Посмотреть профиль Найти все сообщения от klev2004
 
Регистрация: 05.04.2012
Сообщений: 25

Skipp, не помогло. Будем подключать аякс.
Ответить с цитированием
  #4 (permalink)  
Старый 25.05.2012, 18:17
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

klev2004,
Вы бы выложили пару форм , либо лучше ссылку на страницу
Ответить с цитированием
  #5 (permalink)  
Старый 07.07.2012, 17:01
Интересующийся
Отправить личное сообщение для klev2004 Посмотреть профиль Найти все сообщения от klev2004
 
Регистрация: 05.04.2012
Сообщений: 25

Подскажите как правильно получить value-значение selected варианта в выпадающем списке формы, в которой произошло событие submit. Приемлемы любые варианты обращения к объектам: по ID, по классу, по имени.

Перепробовал кучу разных вариантов и jQuery и чистый javascript. Все не выходит.

Как-то так пробую:
$(this).parent().children('#sel').selectedIndex; // вместо индекса  undefined


здесь, как я понимаю:
this - кнопка сабмит, на которую нажали;
parent() - форма, к которой относится кнопка сабмит;
children(#sel) - выпадающий список, у которого необходимо получить (в данном случае индекс выбранного элемента);
selectedIndex - непосредственно метод получения индекса выбранного пункта в списке.
Ответить с цитированием
  #6 (permalink)  
Старый 07.07.2012, 18:21
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

var value=$(this).parents("form:first").find('#sel').val();
Ответить с цитированием
  #7 (permalink)  
Старый 09.07.2012, 14:49
Интересующийся
Отправить личное сообщение для klev2004 Посмотреть профиль Найти все сообщения от klev2004
 
Регистрация: 05.04.2012
Сообщений: 25

Deff, спасибо.
Помогла непосредственная передача элемента во входном параметре функции:
<form>
<input id="button" class="button" type="button" value="Button" onclick="func(this); return;">
<select id="sel" name="sel">
<option ...>
</select>
</form>

function func(elem)
{
var value=$(elem).parents("form:first").find('#sel').val();
}

Последний раз редактировалось klev2004, 09.07.2012 в 14:51.
Ответить с цитированием
  #8 (permalink)  
Старый 09.07.2012, 14:59
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от klev2004
Deff, спасибо.
Помогла непосредственная передача элемента во входном параметре функции:
Сообщение от Deff
Вы бы выложили пару форм
Что помогло бы помочь существенно быстрее (Это про совет на будущее
Ответить с цитированием
  #9 (permalink)  
Старый 09.07.2012, 15:41
Интересующийся
Отправить личное сообщение для klev2004 Посмотреть профиль Найти все сообщения от klev2004
 
Регистрация: 05.04.2012
Сообщений: 25

Deff, я это понимаю. Именно в этом случае практически все генерируется php-кодом. Все вариации в статичных html-страничках не учесть, поэтому выкладывать было затруднительно.
Спасибо за помощь!

Вопрос по теме:

Как у кнопки в данном случае изменить value?
$(elem).parents("form:first").find('#button').value = 'Some text';

и
$(elem).parents("form:first").find('#button').val() = 'Some text';

не работают.

UPD:
Вопрос снят. Правильно делать так:
$(elem).parents("form:first").find('#button').val('Some text');

Последний раз редактировалось klev2004, 09.07.2012 в 15:57. Причина: Найдено решение
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько селектов с одним содержанием Andres Events/DOM/Window 1 15.06.2011 22:26