Приветствую:
Есть 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х. Как можно его победить?
И еще один БАГ с Хромом на Андроиде - скрипт работает, он вроде-как все значения атрибутов устанавливает, но установленное скриптом значение value не отображает (надо обязательно тыкнуться в поле и «подтвердить»).
Может есть знающие люди, подскажите, как это дело исправить?