Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 04.12.2017, 00:36
Аспирант
Отправить личное сообщение для Anushki Посмотреть профиль Найти все сообщения от Anushki
 
Регистрация: 07.11.2017
Сообщений: 43

Сообщение от laimas Посмотреть сообщение
Свяжите так:

<input type="text" name="name" placeholder="Ваше ФИО"><br><br>
<input type="text" name="phone" placeholder="Телефон">
.....

<p>Заказчик: <span id="name"></span></p>
<p>Телефон: <span id="phone"></span></p>
.....


В обработчике выполните такой код:

$.each(this.elements, function(i, e) {
            console.log($('#'+e.name))
});


Видны в консоли ваши SPAN? Какая проблема?

Проблема возникнет с флажками, если как выше говорилось, а значит их именовать надо как например pack[], а в связывании убирать из имени. Если связать по имени класса, то по крайней мере этого бы не требовалось. Чем имя класса хуже ID?
можешь теперь написать дальше как сравнить их и передать значение по id ?
Ответить с цитированием
  #12 (permalink)  
Старый 04.12.2017, 01:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Anushki,
привязка по классу
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
    $("form").on("input change", function() {
        var data = $(this).serializeArray(), obj ={};
        $.each(data, function(i, el) {
            var cls = "."+el.name, val = el.value;
            if(/\[\]/.test(cls)) {
               cls = cls.slice(0,-2);
               obj[cls] !== undefined ? obj[cls].push(val) : (obj[cls] = [val]);
               val = obj[cls].join(",");
            }
            $(cls).html(val);
        });
    })
});
  </script>
</head>

<body>  <p>Заказчик: <span class="name"></span></p>
        <p>Заказчик: <span class="name"></span></p>
        <p>Заказчик: <span class="name"></span></p>
<div class="content"><h2>Договор</h2>
<p>Заказчик: <span class="name"></span></p>
<p>Телефон: <span class="phone"></span></p>
<p>Заказал: <span class="category"></span></p>
<p>Тариф: <span class="tarif"></span></p>
<p>Пакет: <span class="pack"></span></p></div>
<form action="" method="post">
<input type="text" name="name" placeholder="Ваше ФИО"><br><br>
<input type="text" name="phone" placeholder="Телефон"><br><br>
<select name="category">
<option selected disabled>Тип сайта</option>
<option>Визитка</option>
<option>Лендинг</option>
</select><br><br>
<input type="radio" name="tarif"  value="Тариф 1"> Тариф 1
<input type="radio" name="tarif"  value="Тариф 2"> Тариф 2<br><br>
<input type="checkbox" name="pack[]"  value="Пакет 1"> Пакет
<input type="checkbox" name="pack[]"  value="Пакет 2"> Пакет
</form>

<h2>Договор</h2>
<p>Заказчик: <span class="name"></span></p>
<p>Телефон: <span class="phone"></span></p>
<p>Заказал: <span class="category"></span></p>
<p>Тариф: <span class="tarif"></span></p>
<p>Пакет: <span class="pack"></span></p>
</body>
</html>
Ответить с цитированием
  #13 (permalink)  
Старый 04.12.2017, 01:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Anushki
как сравнить их и передать значение по id
Что значит по ID? Здесь имя поля формы равно ID закрепленного за ним SPAN. Сравнивать ничего не надо. Сериализация возвращает объект, именами свойств которого как раз и будут имена полей формы.

$(function() {
    $("form").on("input", function() {
        var o = $('span').empty();
        $.each($(this).serializeArray(), function() {
            var a = o.filter('#'+this.name.replace(/\[\]/,'')), v = a.text();
            a.text(v + (v ? ', ' : '') + this.value); //флажков может быть несколько
        });
    })
});
Ответить с цитированием
  #14 (permalink)  
Старый 04.12.2017, 01:24
Аспирант
Отправить личное сообщение для Anushki Посмотреть профиль Найти все сообщения от Anushki
 
Регистрация: 07.11.2017
Сообщений: 43

Сообщение от рони Посмотреть сообщение
Anushki,
привязка по классу
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
    $("form").on("input change", function() {
        var data = $(this).serializeArray(), obj ={};
        $.each(data, function(i, el) {
            var cls = "."+el.name, val = el.value;
            if(/\[\]/.test(cls)) {
               cls = cls.slice(0,-2);
               obj[cls] !== undefined ? obj[cls].push(val) : (obj[cls] = [val]);
               val = obj[cls].join(",");
            }
            $(cls).html(val);
        });
    })
});
  </script>
</head>

<body>  <p>Заказчик: <span class="name"></span></p>
        <p>Заказчик: <span class="name"></span></p>
        <p>Заказчик: <span class="name"></span></p>
<div class="content"><h2>Договор</h2>
<p>Заказчик: <span class="name"></span></p>
<p>Телефон: <span class="phone"></span></p>
<p>Заказал: <span class="category"></span></p>
<p>Тариф: <span class="tarif"></span></p>
<p>Пакет: <span class="pack"></span></p></div>
<form action="" method="post">
<input type="text" name="name" placeholder="Ваше ФИО"><br><br>
<input type="text" name="phone" placeholder="Телефон"><br><br>
<select name="category">
<option selected disabled>Тип сайта</option>
<option>Визитка</option>
<option>Лендинг</option>
</select><br><br>
<input type="radio" name="tarif"  value="Тариф 1"> Тариф 1
<input type="radio" name="tarif"  value="Тариф 2"> Тариф 2<br><br>
<input type="checkbox" name="pack[]"  value="Пакет 1"> Пакет
<input type="checkbox" name="pack[]"  value="Пакет 2"> Пакет
</form>

<h2>Договор</h2>
<p>Заказчик: <span class="name"></span></p>
<p>Телефон: <span class="phone"></span></p>
<p>Заказал: <span class="category"></span></p>
<p>Тариф: <span class="tarif"></span></p>
<p>Пакет: <span class="pack"></span></p>
</body>
</html>
Рони ты бог Мамой клянусь я такого спеца первый раз вижу ) миллиард раз спасибо !! )
Ответить с цитированием
  #15 (permalink)  
Старый 04.12.2017, 01:26
Аспирант
Отправить личное сообщение для Anushki Посмотреть профиль Найти все сообщения от Anushki
 
Регистрация: 07.11.2017
Сообщений: 43

Загрузил на http://jsfiddle.net/4gZAT/1388 идеальный вариант от РОНИ ! Спасибо ещё раз.
Ответить с цитированием
  #16 (permalink)  
Старый 04.12.2017, 01:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Anushki
идеальный вариант от РОНИ
Чем? С разницей что у него классы, чего и надо было, нет "заказчик" уперся в ID. ) И данные ранее полученные нужно очищать, а значит span пусты, проверив это можно просто добавлять к строке через запятую.

Разберитесь, два кода делают одно и тоже.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка дефолтных значений формы deonis Angular.js 4 03.08.2015 09:06
Подключение случайных значений Nyam Общие вопросы Javascript 13 26.04.2014 20:46
Суммирование значений по всем динамически добавленным полям Joliat Общие вопросы Javascript 2 12.02.2014 16:01
Умножение численных значений формы ввода FastSP Общие вопросы Javascript 8 08.04.2012 20:45
Переодическое обновление значений для графика, функция для обновления значений yupa87 Общие вопросы Javascript 0 09.07.2009 14:48