Buscador Coex WP

Buscador Coex WP pruebas

by Alejandro Hernández

HTML

<div class="pasajeros-spinner voidselect">
  <a href="javascript:;" class="spin-pax minus voidselect button">-</a>
  <input id="partidasAdultos" name="c" type="text" class="azul bold600 cantidad" value="5" />
  <a href="javascript:;" class="spin-pax plus voidselect button">+</a>
</div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#banner-message {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
}

#banner-message.alt {
  background: #0084ff;
  color: #fff;
  margin-top: 40px;
  width: 200px;
}

#banner-message.alt button {
  background: #fff;
  color: #000;
}

JavaScript

cambiarPasajeros = function(el, delta) {
  var txt = el.closest(".pasajeros-spinner").querySelector(".cantidad");
  var paxType = txt.getAttribute("name");
  var valorActual = parseInt(txt.value);
  if (isNaN(valorActual)) valorActual = 0;
  var valorNuevo = valorActual + delta;
  var limites = getPaxLimit(paxType);
  if (valorNuevo < limites.min) valorNuevo = limites.min;
  if (valorNuevo > limites.max) valorNuevo = limites.max;
  if (valorActual !== valorNuevo) {
    var txts = document.querySelectorAll('input[name="' + paxType + '"]');
    Array.prototype.forEach.call(txts, function(txt, i) {
      txt.value = valorNuevo;
    });
  }
}

var inputs = document.querySelectorAll('a.button.minus');

var bMinus = document.querySelectorAll('a.button.minus');
onClick(bMinus, function(el) {
  cambiarPasajeros(el, -1);
});

var bPlus = document.querySelectorAll('a.button.plus');
onClick(bPlus, function(el) {
  cambiarPasajeros(el, 1);
});

function onClick(elements, f) {
  Array.prototype.forEach.call(elements, function(el, i) {
    el.addEventListener("click", function() {
      f(el);
    });
  });
}

function getPaxLimit(paxType) {
  var res;
  switch (paxType) {
    case "a":
      res = {
        max: 15,
        min: 1
      }
      break;
    case "n":
      res = {
        max: 15,
        min: 0
      }
      break;
    case "c":
      res = {
        max: 15,
        min: 0
      }
      break;
  }
  return res;
}