Перейти к содержимому


Редактирование Оформления Заказа

самовывоз оформление заказа

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 53

#1 Atamovich

Atamovich

    Пользователь

  • Пользователи
  • PipPip
  • 33 сообщений

Отправлено 18 Ноябрь 2013 - 19:39

Здравствуйте!
Не могу разобраться, как сделать так, чтобы при оформлении заказа на втором шаге при выборе самовывоза не высвечивались поля, где нужно что-то вводить, а при выборе доставки курьеров или почтой России выводились эти поля.
Вообще, в идеале разобраться, как редактировать появляющееся поля для каждого варианта получения товара. И вообще, можно ли так сделать, чтобы в зависимости от того, что выбрал высвечивалось то, что нужно?
Сейчас так:
123.PNG
В качестве временного решения просто сделал поля не обязательными, но так не очень нравится...
Вот пациент.

Сообщение отредактировал Atamovich: 18 Ноябрь 2013 - 19:42


#2 мистка

мистка

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 2 435 сообщений
  • ГородМосква

Отправлено 18 Ноябрь 2013 - 19:42

и что тут не понятного) ,заходи в бэйк, настройки , доставка

и пиши ,,))

#3 Atamovich

Atamovich

    Пользователь

  • Пользователи
  • PipPip
  • 33 сообщений

Отправлено 18 Ноябрь 2013 - 21:49

Просмотр сообщениязлая я))) (18 Ноябрь 2013 - 19:42) писал:

и что тут не понятного) ,заходи в бэйк, настройки , доставка

и пиши ,,))
Думаю, если все было бы так просто, я бы сюда не писал :)
Вот админка:123.PNG
Где тут галочка, чтобы не показывались формы для ввода адреса?
--
Либо я совсем туплю, если так, то ткните носом)

#4 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 19 Ноябрь 2013 - 02:51

Добавьте в файл main.js код

$(function() {
$('.deliveryRadio').click(function() {
var courier_id = '26734';
var current_id = $(this).val();
$('#deliveryAddress').closest('tr').show();
$('#deliveryConvenientDate').closest('tr').show();
if(current_id === courier_id) {
   $('#deliveryAddress').closest('tr').hide();
   $('#deliveryConvenientDate').closest('tr').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});


#5 Atamovich

Atamovich

    Пользователь

  • Пользователи
  • PipPip
  • 33 сообщений

Отправлено 19 Ноябрь 2013 - 15:02

Просмотр сообщенияСake (19 Ноябрь 2013 - 02:51) писал:

Добавьте в файл main.js код
$(function() {
$('.deliveryRadio').click(function() {
var courier_id = '26734';
var current_id = $(this).val();
$('#deliveryAddress').closest('tr').show();
$('#deliveryConvenientDate').closest('tr').show();
if(current_id === courier_id) {
$('#deliveryAddress').closest('tr').hide();
$('#deliveryConvenientDate').closest('tr').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});
Большое спасибо!
Так лучше! Осталось только что-то с надписью сделать "Укажите адрес доставки". Можно ли ее убрать совсем или скрыть или изменить?
И еще, на основе вашего решения сделал вот так:
//Меняем поля на шаге 2 в оформлении заказа
$(function() {
// Для самовывоза скрываем адрес доставки и оставляем комментарий
$('.deliveryRadio').click(function() {
var courier_id = '26734';
var current_id = $(this).val();
$('#deliveryZipCode').closest('tr').show();
$('#deliveryCity').closest('tr').show();
$('#deliveryAddress').closest('tr').show();
$('#deliveryConvenientDate').closest('tr').show();
if(current_id === courier_id) {
  $('#deliveryZipCode').closest('tr').hide();
  $('#deliveryCity').closest('tr').hide();
  $('#deliveryAddress').closest('tr').hide();
  $('#deliveryConvenientDate').closest('tr').hide();
}
});

// Для курьера скрываем город и индекс
$('.deliveryRadio').click(function() {
var courier_id = '26735';
var current_id = $(this).val();
$('#deliveryCity').closest('tr').show();
$('#deliveryZipCode').closest('tr').show();
if(current_id === courier_id) {
   $('#deliveryCity').closest('tr').hide();
   $('#deliveryZipCode').closest('tr').hide();
}
});

// Для почты России скрываем время доставки
$('.deliveryRadio').click(function() {
var courier_id = '216337';
var current_id = $(this).val();
$('#deliveryConvenientDate').closest('tr').show();
if(current_id === courier_id) {
   $('#deliveryConvenientDate').closest('tr').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});
Но почему-то перестали скрываться поля для Самовывоза, хотя для остальных вариантов все скрывается как надо. Где я допустил ошибку?
Страница: http://smallpet.ru/o.../stage/delivery

#6 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 20 Ноябрь 2013 - 03:01

Попробуйте использовать следующий код

//Меняем поля на шаге 2 в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#deliveryZipCode').closest('tr').show();
$('#deliveryCity').closest('tr').show();
$('#deliveryAddress').closest('tr').show();
$('#deliveryConvenientDate').closest('tr').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if(current_id === '26734') {
  $('#deliveryZipCode').closest('tr').hide();
  $('#deliveryCity').closest('tr').hide();
  $('#deliveryAddress').closest('tr').hide();
  $('#deliveryConvenientDate').closest('tr').hide();
}
// Для курьера скрываем город и индекс
else if(current_id === '26735') {
  $('#deliveryCity').closest('tr').hide();
  $('#deliveryZipCode').closest('tr').hide();
}
// Для почты России скрываем время доставки
else if(current_id === '216337') {
  $('#deliveryConvenientDate').closest('tr').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});


#7 Atamovich

Atamovich

    Пользователь

  • Пользователи
  • PipPip
  • 33 сообщений

Отправлено 20 Ноябрь 2013 - 08:34

Просмотр сообщенияСake (20 Ноябрь 2013 - 03:01) писал:

Попробуйте использовать следующий код

//Меняем поля на шаге 2 в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#deliveryZipCode').closest('tr').show();
$('#deliveryCity').closest('tr').show();
$('#deliveryAddress').closest('tr').show();
$('#deliveryConvenientDate').closest('tr').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if(current_id === '26734') {
$('#deliveryZipCode').closest('tr').hide();
$('#deliveryCity').closest('tr').hide();
$('#deliveryAddress').closest('tr').hide();
$('#deliveryConvenientDate').closest('tr').hide();
}
// Для курьера скрываем город и индекс
else if(current_id === '26735') {
$('#deliveryCity').closest('tr').hide();
$('#deliveryZipCode').closest('tr').hide();
}
// Для почты России скрываем время доставки
else if(current_id === '216337') {
$('#deliveryConvenientDate').closest('tr').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});
Супер! Огромнейшее спасибо! :D

#8 ravikwow

ravikwow

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 27 Ноябрь 2013 - 19:44

Здравствуйте.
Сделал как тут предложили, все работает.
Можно ли сделать так, чтобы при выборе "Самовывоз" не срабатывала проверка на заполнение адреса?
Но при выборе курьером адрес был обязательным. Сейчас все поля стоят как не обязательные.
Без имени.png
Дизайн "Радость".
Заранее, спасибо за помощь.

#9 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 28 Ноябрь 2013 - 05:09

Попробуйте ваш код в файле main.js

//Меняем поля на шаге 2 в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#deliveryLabel').show();
$('#deliveryZipCode').closest('tr').show();
$('#deliveryCity').closest('tr').show();
$('#deliveryAddress').closest('tr').show();
$('#deliveryConvenientDate').closest('tr').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if(current_id === '218115') {
$('#deliveryLabel').hide();
$('#deliveryZipCode').closest('tr').hide();
$('#deliveryCity').closest('tr').hide();
$('#deliveryAddress').closest('tr').hide();
$('#deliveryConvenientDate').closest('tr').hide();
}
// Для курьера скрываем город и индекс
else if(current_id === '210466') {
$('#deliveryCity').closest('tr').hide();
$('#deliveryZipCode').closest('tr').hide();
}
// Для почты России скрываем время доставки
else if(current_id === '216337') {
$('#deliveryConvenientDate').closest('tr').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});

заменить на

//Меняем поля на шаге 2 в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#deliveryLabel').show();
$('#deliveryZipCode').closest('tr').show();
$('#deliveryCity').closest('tr').show();
$('#deliveryAddress').addClass('required').attr('required', 'required').closest('tr').show();
$('#deliveryConvenientDate').closest('tr').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if(current_id === '218115') {
$('#deliveryLabel').hide();
$('#deliveryZipCode').closest('tr').hide();
$('#deliveryCity').closest('tr').hide();
$('#deliveryAddress').removeClass('required').removeAttr('required').closest('tr').hide();
$('#deliveryConvenientDate').closest('tr').hide();
}
// Для курьера скрываем город и индекс
else if(current_id === '210466') {
$('#deliveryCity').closest('tr').hide();
$('#deliveryZipCode').closest('tr').hide();
}
// Для почты России скрываем время доставки
else if(current_id === '216337') {
$('#deliveryConvenientDate').closest('tr').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});


#10 Store-rondell

Store-rondell

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 187 сообщений
  • ГородМосква

Отправлено 30 Ноябрь 2013 - 09:15

Делал все как выше сказано, но поля никуда не исчезают...
В итоге все вернул обратно.
Вот как сейчас:
Изображение

А как хотелось бы сделать:
Изображение

Прощу помощи!(

#11 ravikwow

ravikwow

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 30 Ноябрь 2013 - 09:23

Сake, спасибо за помощь, но не работает.
Может быть в поле адреса просто вставлять пробел, когда выбираешь самовывоз. Такое возможно?

Просмотр сообщенияStore-rondell (30 Ноябрь 2013 - 09:15) писал:

Делал все как выше сказано, но поля никуда не исчезают...
Нужно менять current_id на свои. Я узнаю их с помощью firefox: жмешь правую мышь на элементе и выбираешь "Исследовать элемент".

#12 Store-rondell

Store-rondell

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 187 сообщений
  • ГородМосква

Отправлено 30 Ноябрь 2013 - 09:40

Спасибо.

#13 Atamovich

Atamovich

    Пользователь

  • Пользователи
  • PipPip
  • 33 сообщений

Отправлено 30 Ноябрь 2013 - 22:20

Просмотр сообщенияСake (28 Ноябрь 2013 - 05:09) писал:

Попробуйте ваш код в файле main.js

//Меняем поля на шаге 2 в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#deliveryLabel').show();
$('#deliveryZipCode').closest('tr').show();
$('#deliveryCity').closest('tr').show();
$('#deliveryAddress').closest('tr').show();
$('#deliveryConvenientDate').closest('tr').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if(current_id === '218115') {
$('#deliveryLabel').hide();
$('#deliveryZipCode').closest('tr').hide();
$('#deliveryCity').closest('tr').hide();
$('#deliveryAddress').closest('tr').hide();
$('#deliveryConvenientDate').closest('tr').hide();
}
// Для курьера скрываем город и индекс
else if(current_id === '210466') {
$('#deliveryCity').closest('tr').hide();
$('#deliveryZipCode').closest('tr').hide();
}
// Для почты России скрываем время доставки
else if(current_id === '216337') {
$('#deliveryConvenientDate').closest('tr').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});

заменить на

//Меняем поля на шаге 2 в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#deliveryLabel').show();
$('#deliveryZipCode').closest('tr').show();
$('#deliveryCity').closest('tr').show();
$('#deliveryAddress').addClass('required').attr('required', 'required').closest('tr').show();
$('#deliveryConvenientDate').closest('tr').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if(current_id === '218115') {
$('#deliveryLabel').hide();
$('#deliveryZipCode').closest('tr').hide();
$('#deliveryCity').closest('tr').hide();
$('#deliveryAddress').removeClass('required').removeAttr('required').closest('tr').hide();
$('#deliveryConvenientDate').closest('tr').hide();
}
// Для курьера скрываем город и индекс
else if(current_id === '210466') {
$('#deliveryCity').closest('tr').hide();
$('#deliveryZipCode').closest('tr').hide();
}
// Для почты России скрываем время доставки
else if(current_id === '216337') {
$('#deliveryConvenientDate').closest('tr').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});
А такой вариант к моему случаю не подойдет? Поменял id на свои, но все равно при "Самовывозе" не пускает без заполнения "Адреса", хотя его не видно.
Есть решение для моего варианта? :)

Сообщение отредактировал Atamovich: 01 Декабрь 2013 - 00:17


#14 Atamovich

Atamovich

    Пользователь

  • Пользователи
  • PipPip
  • 33 сообщений

Отправлено 01 Декабрь 2013 - 18:13

Кстати, почему-то в Firefox 25.0.1 не работает... :(

#15 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 03 Декабрь 2013 - 02:00

В подобном случае необходимо отключать обязательность заполнения поля в разделе Настройки -> Основные. В последствии вся обязательность заполнения поля реализуется уже через данный код посредству добавления класса и атрибута required.

#16 OlgaS

OlgaS

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 03 Декабрь 2013 - 10:55

Я сделала, как выше написано, но у меня теперь пропали обязательные для заполнения поля в случае "Курьерской доставки":
-Город
-Адрес
Что я не так сделала?

#17 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 04 Декабрь 2013 - 01:58

Вы скорее всего перепутали идентификатор метода доставки.  Как я понимаю вам необходимо скрытие полей только для одного метода доставки? Опишите подробнее что именно вы бы хотели сделать.

#18 OlgaS

OlgaS

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 04 Декабрь 2013 - 09:11

Просмотр сообщенияСake (04 Декабрь 2013 - 01:58) писал:

Вы скорее всего перепутали идентификатор метода доставки.  Как я понимаю вам необходимо скрытие полей только для одного метода доставки? Опишите подробнее что именно вы бы хотели сделать.
Мне нужно, чтоб при выборе "Доставка курьером" - поля "Город" и "Адрес доставки" были обязательными для заполнения, а при выборе "Самовывоз" - они были необязательными.

#19 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 05 Декабрь 2013 - 01:54

Вам необходимо отключить обязательность заполнения данных полей в разделе Настройки -> Основные. После в файле main.js удалть ранее добавленный код для шага доставки, после добавить следующий код

$(function() {
  $('.deliveryRadio').click(function() {
	 var courier_id = '217053';
	 var current_id = $(this).val();
	 $('#deliveryAddress').addClass('required').attr('required', 'required');
	 $('#deliveryCity').addClass('required').attr('required', 'required');
	 if(current_id === courier_id) {
		$('#deliveryAddress').removeClass('required').removeAttr('required');
		$('#deliveryCity').removeClass('required').removeAttr('required');
	 }
  });
  $('.deliveryRadio:checked').trigger('click');
});


#20 OlgaS

OlgaS

    Пользователь

  • Пользователи
  • PipPip
  • 42 сообщений

Отправлено 05 Декабрь 2013 - 10:11

Просмотр сообщенияСake (05 Декабрь 2013 - 01:54) писал:

Вам необходимо отключить обязательность заполнения данных полей в разделе Настройки -> Основные. После в файле main.js удалть ранее добавленный код для шага доставки, после добавить следующий код

$(function() {
$('.deliveryRadio').click(function() {
	 var courier_id = '217053';
	 var current_id = $(this).val();
	 $('#deliveryAddress').addClass('required').attr('required', 'required');
	 $('#deliveryCity').addClass('required').attr('required', 'required');
	 if(current_id === courier_id) {
	 $('#deliveryAddress').removeClass('required').removeAttr('required');
	 $('#deliveryCity').removeClass('required').removeAttr('required');
	 }
});
$('.deliveryRadio:checked').trigger('click');
});
Спасибо, все получилось!





Темы с аналогичным тегами самовывоз, оформление заказа

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных