Показать сообщение отдельно
  #59 (permalink)  
Старый 04.07.2017, 22:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ФедорН
Возможно, не работает из-за некорректной реализации массива
Нет вообще никакой реализации, это самодеятельность. Нужно формировать строку из значений, а затем ее вставлять методом push() в массив. А чтобы проще было понимать, обходили бы не всю коллекцию элементов, а блоки формы содержащие элементы, получая уже в них коллекцию из четырех элементов, в которой они следуют по порядку под индексами от 0 до 3.

Вам действительно так все пофигу и что там придет от клиента не важно? Наверное же надо добавлять в вывод только тогда, когда пользователем что-то выбрано. Я показывал код, в котором расчет будет только тогда, когда выбрано все необходимое. А значит проверяя значение поля результата расчета, можно решать нужно ли добавлять. Следовательно проверив не пуст ли массив orderInfo, можно будет решать нужна ли отправка формы вообще, или же...? Бог с ним, пусть будет некая доля пофигизма, но не настолько же.

$(function () { ... это готовность DOM, если ваш код выполняется значит форма присутствует на странице, она просто не отображается. Поэтому это не добавление "кода в плагин" как вы писали. Переделать это нужно. Лучше так - в обработчике вызывающем эту форму и формировать информацию о заказе, и заблокировав отправку формы (если конечно пофигизм не 100%), снимая блокировку если orderInfo не пуст. Что там за кнопка вызывает форму я не в курсе, ищите, разбирайтесь, а помещение информацию в форму, это:

var orderInfo = $.map($('.roword'), function(e) {
    var o = $(e).find('select,input'); //получить все элементы
    if(o.eq(3).val()) return o.eq(0).children(':selected').text() + ' ' + o.eq(1).val() + 'x' + o.eq(2).val() + ' ' + o.eq(3).val() //если был выбор 
});

if(orderInfo.length) $('textarea').val(orderInfo.join('\n'))

Последний раз редактировалось laimas, 05.07.2017 в 06:19.
Ответить с цитированием