Как при выборе 3 select вызвать объект

230
04 августа 2018, 01:50

имеется такой код https://codepen.io/Broanarchy/pen/rKrLXa?editors=1010 , как мне написать функцию чтобы при выборе 3 селектов Страны -> Суммы страховки -> Кол-ва дней прибывания. Вызвать определенный объект в котором хранится коэфицент

var sums = { 
  def: ["Выберите сумму"], 
  sng: ["500", "1000", "3000","5000","15000","30000"], 
  usa: ["15000", "30000","50000"], 
  eur: ["15000", "30000","50000"],  
}; 
var country = document.getElementById("country"); 
var sum = document.querySelector("#sum"); 
window.onload = selectCountry; 
country.onchange = selectCountry; 
// Выбор страны и изменение выбора суммы страховки 
function selectCountry(ev){ 
  sum.innerHTML = ""; 
  var c = this.value || "def" , o; 
  for(let i = 0; i < sums[c].length; i++){ 
    o = new Option(sums[c][i],i,false,false); 
    sum.add(o); 
  }; 
} 
var europe_coefficient = {}; 
  europe_coefficient["15_15"] = 0.59; 
  europe_coefficient["15_30"] = 0.78; 
  europe_coefficient["15_50"] = 1.14; 
   
  europe_coefficient["22_15"] = 0.53; 
  europe_coefficient["22_30"] = 0.73; 
  europe_coefficient["22_50"] = 1.04;
<select name="country" id="country"> 
  <option value="def" selected>Выберите страну</option> 
  <option value="sng">Страны СНГ</option> 
  <option value="usa">Сша,Канада, Австралия, Япония, Новая Зеландия</option> 
  <option value="eur">Весь мир кроме стран СНГ, США, Канада, Австралия, Япония, Новая Зеландия</option> 
</select> 
<select name="sum" id="sum">  </select> 
 Продолжительность поездки: 
        <select name="days" id="days"> 
          <option value="1" selected>1-15 Дней</option> 
          <option value="2">16-22 Дней</option> 
          <option value="3">23-31 Дней</option> 
          <option value="4">32-90 Дней</option> 
          <option value="5">91-180 Дней</option> 
          <option value="6">181-365 Дней</option> 
        </select>

Answer 1

Нужно добавить якорь (глобальная переменная) и при каждом иземенении select, либо можно привязать обработчик к каждому отдельному select, и увеличивать при каждом изменении на 1, когда получается нужное количество, делать дальнейшие действия. Либо при выборе пункта давать родителю какой либо атрибут например change и проверять нужные select на наличие этих атрибутов!

var anchor = 0; 
var sums = { 
  def: ["Выберите сумму"], 
  sng: ["500", "1000", "3000","5000","15000","30000"], 
  usa: ["15000", "30000","50000"], 
  eur: ["15000", "30000","50000"],  
}; 
var country = document.getElementById("country"); 
var sum = document.querySelector("#sum"); 
window.onload = selectCountry; 
country.onchange = selectCountry; 
// Выбор страны и изменение выбора суммы страховки 
function selectCountry(ev){ 
  sum.innerHTML = ""; 
  var c = this.value || "def" , o; 
  for(let i = 0; i < sums[c].length; i++){ 
    o = new Option(sums[c][i],i,false,false); 
    sum.add(o); 
  }; 
} 
var europe_coefficient = {}; 
  europe_coefficient["15_15"] = 0.59; 
  europe_coefficient["15_30"] = 0.78; 
  europe_coefficient["15_50"] = 1.14; 
   
  europe_coefficient["22_15"] = 0.53; 
  europe_coefficient["22_30"] = 0.73; 
  europe_coefficient["22_50"] = 1.04; 
   
function addToAnchor(){ 
 if (anchor === 3){ 
 console.log('уже выбрано 3 можно делать дела! '); 
 } 
} 
   
$('select').on('change', function(e){ 
	e.stopPropagation(); 
	anchor+=1; 
	addToAnchor(); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<select name="country" id="country"> 
  <option value="def" disabled selected>Выберите страну</option> 
  <option value="sng">Страны СНГ</option> 
  <option value="usa">Сша,Канада, Австралия, Япония, Новая Зеландия</option> 
  <option value="eur">Весь мир кроме стран СНГ, США, Канада, Австралия, Япония, Новая Зеландия</option> 
</select> 
<select name="sum" id="sum">  </select> 
 Продолжительность поездки: 
<select name="days" id="days"> 
  <option value="1" selected>1-15 Дней</option> 
  <option value="2">16-22 Дней</option> 
  <option value="3">23-31 Дней</option> 
  <option value="4">32-90 Дней</option> 
  <option value="5">91-180 Дней</option> 
  <option value="6">181-365 Дней</option> 
</select>

READ ALSO
Как сделать кнопку поиск и выпадающие меню одновременно

Как сделать кнопку поиск и выпадающие меню одновременно

Я сделал что-то вроде этого, но мне нужно чтобы вся кнопка была поиском а не какая-то частьЧто я хочу сделать будет изображено на картинке

336
Где ошибка в коде javascript?

Где ошибка в коде javascript?

Как её исправить?

185
Вывести текст из input в поле &lt;p&gt;?

Вывести текст из input в поле <p>?

Как вывести текст из input в другой блок или параграф ?

189