Как отправить id элемента в объект?

289
13 октября 2017, 18:25

Задача: Есть три шага в форме, после выбора одного из элементов выбранный шаг, а следующий появляется. По клику на элемент нужно отправить его id в объект registration, как это сделать?

const request = new XMLHttpRequest(); 
var steps = document.querySelectorAll('.master-change, .service-change, .date-block'); 
 
// Скрываем все шаги при загрузке страницы 
 
window.onload = function() { 
  steps.forEach((element, index) => { 
    if (index > 0) { 
      element.classList.add('hide'); 
    } 
  }); 
}; 
 
//Переход по шагам 
 
var choiseElement = document.querySelectorAll('.master-list, .service-list'); // Выбираем элементы с которых отлавливаем клик 
 
choiseElement.forEach((element, index) => { 
  element.addEventListener('click', function() { 
    nextStep(element, index); // Вешаем событие на каждый из них 
  }, false); 
}); 
 
var registration = { 
  masterName: '', 
  serviceType: '', 
  time: '' 
}; 
 
function nextStep(el, index) { 
  steps[index].classList.toggle('hide'); // После клика элемент исчезает 
  steps[index + 1].classList.toggle('hide'); // А идущий за ним появляется 
} 
 
const submit = document.querySelector('.btn-submit'); 
 
submit.addEventListener('click', function() { 
  event.preventDefault(); // Отменяем действие по умолчанию 
 
  request.open('GET', './scripts/info.json', true); 
  request.setRequestHeader('Content-type', './scripts/info.json; charset=UTF-8'); 
 
  request.onreadystatechange = function() { 
    if (request.readyState == 4 && request.status == 200) { 
      // alert(request.responseText); 
    } else { 
      console.log(request.status + ' ' + request.statusText); 
    } 
  } 
 
  request.send(); 
 
  console.log(registration); 
});
.hide { 
  display: none; 
}
<main class="pageBody"> 
  <div class="index"> 
    <div class="container"> 
      <div class="form-block"> 
        <form class="form-order" name="form-order"> 
          <div class="from-order__step from-order__step-1 master-change"> 
            <div class="master-list"> 
              <div class="master-list__item" id="master_1"><img class="master-list__photo" src="http://via.placeholder.com/64x64" width="64px" height="64px" alt="Master photo"> 
                <div class="master-name" id="master_1" href="#">Master name</div> 
              </div> 
              <div class="master-list__item" id="master_2"><img class="master-list__photo" src="http://via.placeholder.com/64x64" width="64px" height="64px" alt="Master photo"> 
                <div class="master-name" id="master_2" href="#">Master name</div> 
              </div> 
              <div class="master-list__item" id="master_3"><img class="master-list__photo" src="http://via.placeholder.com/64x64" width="64x" height="64px" alt="Master photo"> 
                <div class="master-name" id="master_3" href="#">Master name</div> 
              </div> 
            </div> 
          </div> 
          <div class="from-order__step from-order__step-2 service-change hide"> 
            <div class="service-list"> 
              <div class="service-list__item" id="service_1"> 
                <h3 class="service__item__name">Service name </h3> 
                <p class="service__item__description">Service description Service description Service description Service description</p><span class="service__price">999 rub</span><span class="service__time">14:44</span> 
              </div> 
              <div class="service-list__item" id="service_2"> 
                <h3 class="service__item__name">Service name </h3> 
                <p class="service__item__description">Service description Service description Service description Service description</p><span class="service__price">999 rub</span><span class="service__time">14:44</span> 
              </div> 
              <div class="service-list__item" id="service_3"> 
                <h3 class="service__item__name">Service name </h3> 
                <p class="service__item__description">Service description Service description Service description Service description</p><span class="service__price">999 rub</span><span class="service__time">14:44</span> 
              </div> 
            </div> 
          </div> 
          <div class="from-order__step from-order__step-3 date-block hide"> 
            <div class="date-block__calendar"> 
              <div class="date-block__time"> 
                <select class="date-block__time"> 
                      <option>10:00</option> 
                      <option>11:00</option> 
                      <option>12:00</option> 
                      <option>13:00</option> 
                      <option>14:00</option> 
                      <option>15:00</option> 
                      <option>16:00</option> 
                      <option>17:00</option> 
                      <option>18:00</option> 
                      <option>19:00</option> 
                      <option>20:00</option> 
                    </select> 
              </div> 
              <button class="btn btn-submit" type="submit">Отправить</button> 
            </div> 
          </div> 
        </form> 
      </div> 
    </div> 
  </div> 
</main>

READ ALSO
Во скольких вкладках открыт сайт?

Во скольких вкладках открыт сайт?

Как проверить, во скольких вкладках открыт сайт? Чтобы можно было избежать высокой нагрузки на сервер, если например на сайте каждые пару...

289
Возвращает undefined и не может прочитать стиль

Возвращает undefined и не может прочитать стиль

Добрый День! Столкнулся с проблемой, JS никак не может понять стиль и выдает ошибку в consolelog каждый раз

253
Работа с input , вставка символа и пробелы

Работа с input , вставка символа и пробелы

Как сделать так чтобы, если в числе больше двух нулей, то оно отделялось пробелами то есть: 100 < 2 , 1 000 > 2, 1 000 000 > 2 и тд

218
OWL carousel autoplay по загрузке блока

OWL carousel autoplay по загрузке блока

Добрый день, есть скрипт карусельки, не могу додуматься как можно запустить автоплей, при попадании блока карусели на экран, а не при загрузке...

282