Показать сообщение отдельно
  #17 (permalink)  
Старый 22.07.2016, 07:50
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Заделал рабочий прототип

<!DOCTYPE html>
<html lang="ru" dir="ltr">
<head>
<meta charset="utf-8">
</head>
<body>


<div><input type="text" id="day" value="1"/></div>
<br/>
<div id="list"></div>
<br/>
<button id="btn">Посчитать</button>
<br/>
<div id="result"></div>

<script>

var costs={},
	today,
    Cost;

costs.msk={
   name:'Мозгва',
   '0':970,
   '1':100,
   '12':300,
   '31':0
};

costs.nsk={
   name:'Новосибирск',
   '0':670,
   '1':200,
   '12':500,
   '31':0
};

costs.spb={
   name:'Питербурх',
   '0':170,
   '1':600,
   '12':600,
   '31':1
};


var html=[];

for(var key in costs)
   html.push('<option value="'+key+'"'+(costs[key]===Cost?' selected':'')+'>'+costs[key].name+'</option>');

document.getElementById('list').innerHTML='<select>'+html.join('')+'</select>';

var calc=function(e){

    /* если есть такой регион, то взять, иначе в мозгву, или какой-то дефольт */

    var region = (costs.hasOwnProperty(this.value))?costs[this.value]:costs.msk
	
	today=document.getElementById('day').value;	
	
    Cost = region.hasOwnProperty(today)?region[today]:region[0];

};

var show=function(){
	document.getElementById('result').innerHTML='<p>Сегодня цена доставки: '+Cost + ' руб.';
};


document.getElementById('btn').addEventListener('click',show);

list.querySelector('select').addEventListener('change',calc);

today=document.getElementById('day').value;

Cost=costs.msk[today]; /* дефаульт сити  */

</script>

</body>
</html>
Ответить с цитированием