2
Доставка
Автор Samonr, 28 июля 2011 13:59
Сообщений в теме: 9
#1
Отправлено 28 Июль 2011 - 13:59
Как сделать чтобы доставку клиент мог выбирать не так как сейчас ДАТУ и интервал времени С и ДО любые цифры и потом клиенту сложно объяснить что с 9 до 11 это мало очень времени для курьера.
а мне надо ДАТУ выбирает и интервал уже готовый с 10.00 до 15.00 или с 13.00 до 18.00 или с 15.00 до 20.00
Вот и еще но это уже не обязательно, но хотелось бы чтобы дату не ранее чем через день.
а мне надо ДАТУ выбирает и интервал уже готовый с 10.00 до 15.00 или с 13.00 до 18.00 или с 15.00 до 20.00
Вот и еще но это уже не обязательно, но хотелось бы чтобы дату не ранее чем через день.
#2
Отправлено 01 Август 2011 - 20:51
Samonr (28 Июль 2011 - 13:59) писал:
Как сделать чтобы доставку клиент мог выбирать не так как сейчас ДАТУ и интервал времени С и ДО любые цифры и потом клиенту сложно объяснить что с 9 до 11 это мало очень времени для курьера.
а мне надо ДАТУ выбирает и интервал уже готовый с 10.00 до 15.00 или с 13.00 до 18.00 или с 15.00 до 20.00
Вот и еще но это уже не обязательно, но хотелось бы чтобы дату не ранее чем через день.
а мне надо ДАТУ выбирает и интервал уже готовый с 10.00 до 15.00 или с 13.00 до 18.00 или с 15.00 до 20.00
Вот и еще но это уже не обязательно, но хотелось бы чтобы дату не ранее чем через день.
Для даты можно использовать аналогичный алгоритм, запретив указывать дату меньше определённой, например так:
minDate: new Date(2011,08-1,05)
Собственно код для обоих настроек для раздела "Сайт" > "Редактор тем" файл main.js:
Вставляем в самый конец, перед скобочками, вот этими:
});
// Обозначаем переменные для более удобного доступа // Поле выбора времени "с" var OrderDeliveryTimeFrom = $('select[name="form[delivery][convenient_time_from]"]'); // Поле выбора времени "По" var OrderDeliveryTimeTo = $('select[name="form[delivery][convenient_time_to]"]'); // Минимальный диапазон для доставки var OrderDeliveryTimeMinRange = 3; // Функция сверки правильности дат function OrderDeliveryTimeVerify () { if(OrderDeliveryTimeTo.val() > 0 && OrderDeliveryTimeFrom.val() > 0 && OrderDeliveryTimeTo.val() - OrderDeliveryTimeMinRange < OrderDeliveryTimeFrom.val()) { alert('Минимальный диапазон для доставки составляет ' + OrderDeliveryTimeMinRange + ' часа. Пожалуйста укажите другое время.'); return false; } else { return true; } } // Действие при смене поля удобного времени, с которого можно производить доставку OrderDeliveryTimeFrom.change(function(){ // Изменение возможной выбираемой даты в зависимости от выбранного минимального времени доставки if(OrderDeliveryTimeFrom.val()>0) { var min = parseInt(OrderDeliveryTimeFrom.val()) + OrderDeliveryTimeMinRange; // Проставляем блокировки полей выбора OrderDeliveryTimeTo.find('option').each(function(){ if( $(this).attr('value') < min ) { $(this).attr('disabled', true); } else { $(this).attr('disabled', false); } }) } else { // Снимаем блокировки полей выбора максимально даты OrderDeliveryTimeTo.find('option').attr('disabled', false); } // Собственно возвращаем результат проверки валидности данных. return OrderDeliveryTimeVerify(); }); // Действие при смене поля удобного времени, до которого можно производить доставку OrderDeliveryTimeTo.change(function(){ // Изменение возможной выбираемой даты в зависимости от выбранного максимального времени доставки if(OrderDeliveryTimeTo.val()>0) { var max = parseInt(OrderDeliveryTimeTo.val()) - OrderDeliveryTimeMinRange; // Проставляем блокировки полей выбора OrderDeliveryTimeFrom.find('option').each(function(){ if( $(this).attr('value') > max ) { $(this).attr('disabled', true); } else { $(this).attr('disabled', false); } }) } else { // Снимаем блокировки полей выбора максимально даты OrderDeliveryTimeFrom.find('option').attr('disabled', false); } // Собственно возвращаем результат проверки валидности данных. return OrderDeliveryTimeVerify(); });
В итоге это позволит не давать пользователю выбирать не верное время.
Для даты я изменил старый код с:
$("#deliveryConvenientDate").datepicker({ dayNames : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'], dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ], closeText : 'Готово', currentText : 'Сегодня' , duration : '', monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Окрябрь','Ноябрь','Декабрь'], monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'], yearRange : "-6:+6", dateFormat : 'dd.mm.yy', minDate : new Date(), firstDay : 1 });
на:
// Сегдоня var myDate = new Date(); // Добавляем день myDate.setDate(myDate.getDate() + 1); $("#deliveryConvenientDate").datepicker({ dayNames : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'], dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ], closeText : 'Готово', currentText : 'Сегодня' , duration : '', monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Окрябрь','Ноябрь','Декабрь'], monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'], yearRange : "-6:+6", dateFormat : 'dd.mm.yy', minDate : myDate, firstDay : 1 });
Дата теперь выбирается только следующего дня.
Скриншоты прилагаются:
#3
Отправлено 02 Август 2011 - 10:56
а как убрать ненужное время т.е. 1.00 2.00 и т.д.
У нас доставка с 9 до 22.00 т.е. цифры в этих пределах только и оставить
У нас доставка с 9 до 22.00 т.е. цифры в этих пределах только и оставить
#4
Отправлено 05 Август 2011 - 16:08
Samonr (02 Август 2011 - 10:56) писал:
а как убрать ненужное время т.е. 1.00 2.00 и т.д.
У нас доставка с 9 до 22.00 т.е. цифры в этих пределах только и оставить
У нас доставка с 9 до 22.00 т.е. цифры в этих пределах только и оставить
c <select name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} <option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option> {% ENDFOR %} </select> до <select name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} <option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option> {% ENDFOR %} </select>
на:
c <select name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} {% IF convenient_time_from_list.HOUR_INT>9 %} {% IF convenient_time_from_list.HOUR_INT<22 %} <option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option> {% ENDIF %} {% ENDIF %} {% ENDFOR %} </select> до <select name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} {% IF convenient_time_to_list.HOUR_INT>9 %} {% IF convenient_time_to_list.HOUR_INT<22 %} <option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option> {% ENDIF %} {% ENDIF %} {% ENDFOR %} </select>
#5
Отправлено 05 Август 2011 - 19:22
выдает ошибку когда выбираю дату и потом выбираю время 9.00 то всплывают несколько окон.
можете сами попробывать www.5baby.ru
просьба скорее исправить
можете сами попробывать www.5baby.ru
просьба скорее исправить
#6
Отправлено 06 Август 2011 - 00:19
Хм. попробуйте в данном блоке
удалить строчку
данный блок находиться в файле main.js
if( $(this).attr('value') < min ) { $(this).attr('disabled', true); alert($(this).attr('value') + ' ' + min); } else { $(this).attr('disabled', false); }
удалить строчку
alert($(this).attr('value') + ' ' + min);
данный блок находиться в файле main.js
#7
Отправлено 06 Август 2011 - 09:40
Да заработало, спасибо. А как убрать воскресенье из выбора или это нереально? У нас доставка с понедельника по субботу, чтобы клиент уже автоматом воскресенье не мог выбирать.
#8
Отправлено 11 Август 2011 - 15:32
Samonr (06 Август 2011 - 09:40) писал:
Да заработало, спасибо. А как убрать воскресенье из выбора или это нереально? У нас доставка с понедельника по субботу, чтобы клиент уже автоматом воскресенье не мог выбирать.
#9
Отправлено 02 Ноябрь 2011 - 20:35
А Изменить временные рамки в субботу возможно?
#10
Отправлено 03 Ноябрь 2011 - 18:59
Думаю что к сожалению не получиться.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных