Input type="time" + JS +Safari (iPhone)
Приветствую:
Есть HTML кусок формы <div class="row"> <div class="col-sm-12"> Перезвоните мне пожалуйста <span id="when"></span><input type="hidden" id="cday" name="cday" value=""> </div> </div> <div class="row"> <div class="col-sm-6"> <div class="form-group"> с <input type="time" id="timestart" name="timestart" class="form-control" required="required" min="" max="22:00" step="1" value=""> </div> </div> <div class="col-sm-6"> <div class="form-group"> до <input type="time" id="timeend" name="timeend" class="form-control" required="required" min="" max="22:00" step="1" value=""> </div> </div> </div> к нему есть скрипт <script> //какое послезавтра будет число? var b = new Date(); b.setDate(b.getDate()+2); atday = b.getDate(); atmonth = b.getMonth() + 1; atyear = b.getFullYear(); aTomorrowСall = (atday + "." + (atmonth < 10 ? "0" + atmonth : atmonth) + "." + atyear + "г."); //какое завтра будет число и день недели? var a = new Date(); a.setDate(a.getDate()+1); tday = a.getDate(); tmonth = a.getMonth() + 1; tyear = a.getFullYear(); TomorrowСall = (tday + "." + (tmonth < 10 ? "0" + tmonth : tmonth) + "." + tyear + "г."); TomorrowWeekDay = a.getDay(); //А сегодня какое число и день недели? var d = new Date(); day = d.getDate(); month = d.getMonth() + 1; year = d.getFullYear(); TodayCall = (day + "." + (month < 10 ? "0" + month : month) + "." + year +"г."); TodayWeekDay = d.getDay(); //Начало и Конец рабочего дня var wdstart = 8; var wdend = 18; var lasthour = wdend - 1; //Текущее время var totalSec = new Date().getTime() / 1000; var hours = parseInt( totalSec / 3600 ) % 24+4; var hoursend = hours + 1; var minutes = parseInt( totalSec / 60 ) % 60; //Начало перида времени звонка var tstart = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes); //Конец перида времени звонка var tend = (hoursend < 10 ? "0" + hoursend : hoursend) + ":" + (minutes < 10 ? "0" + minutes : minutes); //Если сейчас рабочее время if (hours >= wdstart) { if (hours < wdend) { //Если сегодня воскресение if (TodayWeekDay = 0) { //Показываем, что пользователь заказывает звонок на завтра when.innerHTML = ('завтра ' + TomorrowСall); //Устанавливаем дату звонка - завтра cday.setAttribute('value', TomorrowСall); //Унавливаем значения для начала периода звонка timestart.setAttribute('min', '08:00'); timestart.setAttribute('value', '08:00'); //Унавливаем значения для конца периода времени звонка timeend.setAttribute('min', '09:00'); timeend.setAttribute('value', '22:00'); } else { //А вдруг запрос звонка происходит в последние 10 минуты рабочего времени if (hours >= lasthour) { if (minutes > 50) { //А вдруг это последние рабочие минуты субботы? if (TodayWeekDay = 6) { //Показываем, что пользователь заказывает звонок на послезавтра when.innerHTML = ('завтра ' + аTomorrowСall); //Устанавливаем дату звонка - послезавтра cday.setAttribute('value', аTomorrowСall); //Унавливаем значения для начала периода звонка timestart.setAttribute('min', '08:00'); timestart.setAttribute('value', '08:00'); //Унавливаем значения для конца периода времени звонка timeend.setAttribute('min', '09:00'); timeend.setAttribute('value', '22:00'); } else { //Показываем, что пользователь заказывает звонок на завтра when.innerHTML = ('завтра ' + TomorrowСall); //Устанавливаем дату звонка - завтра cday.setAttribute('value', TomorrowСall); //Унавливаем значения для начала периода звонка timestart.setAttribute('min', '08:00'); timestart.setAttribute('value', '08:00'); //Унавливаем значения для конца периода времени звонка timeend.setAttribute('min', '09:00'); timeend.setAttribute('value', '22:00'); } } } else { //Устанавливаем дату звонка - сегодня cday.setAttribute('value', TodayCall); //Унавливаем значения для начала периода звонка timestart.setAttribute('min', tstart); timestart.setAttribute('value', tstart); //Унавливаем значения для конца периода времени звонка timeend.setAttribute('min', tend); timeend.setAttribute('value', tend); } } } } //Если рабочее время еще не началось if (hours < wdstart) { //Если сегодня воскресение if (TodayWeekDay = 0) { //Показываем, что пользователь заказывает звонок на завтра when.innerHTML = ('завтра ' + TomorrowСall); //Устанавливаем дату звонка - завтра cday.setAttribute('value', TomorrowСall); //Унавливаем значения для начала периода звонка timestart.setAttribute('min', '08:00'); timestart.setAttribute('value', '08:00'); //Унавливаем значения для конца периода времени звонка timeend.setAttribute('min', '09:00'); timeend.setAttribute('value', '22:00'); } else { //Устанавливаем дату звонка - сегодня cday.setAttribute('value', TodayCall); //Унавливаем значения для начала периода звонка timestart.setAttribute('min', '08:00'); timestart.setAttribute('value', '08:00'); //Унавливаем значения для конца периода времени звонка timeend.setAttribute('min', '09:00'); timeend.setAttribute('value', '22:00'); } } //Если рабочее время уже закончилось if (hours >= wdend) { //А вдруг сегодня суббота? if (TodayWeekDay = 6) { //Показываем, что пользователь заказывает звонок на послезавтра when.innerHTML = ('завтра ' + аTomorrowСall); //Устанавливаем дату звонка - послезавтра cday.setAttribute('value', аTomorrowСall); //Унавливаем значения для начала периода звонка timestart.setAttribute('min', '08:00'); timestart.setAttribute('value', '08:00'); //Унавливаем значения для конца периода времени звонка timeend.setAttribute('min', '09:00'); timeend.setAttribute('value', '22:00'); } else { //Показываем, что пользователь заказывает звонок на завтра when.innerHTML = ('завтра ' + TomorrowСall); //Устанавливаем дату звонка - завтра cday.setAttribute('value', TomorrowСall); //Унавливаем значения для начала периода звонка timestart.setAttribute('min', '08:00'); timestart.setAttribute('value', '08:00'); //Унавливаем значения для конца периода времени звонка timeend.setAttribute('min', '09:00'); timeend.setAttribute('value', '22:00'); } } </script> который устанавливает значения для полей, в зависимости от того какой день недели и текущего времени. Все отлично работает во всех браузерах, кроме Safari на iphone, он игнорит javascript, игнорит атрибуты min и maх. Как можно его победить? |
Часовой пояс GMT +3, время: 00:29. |