Оформление заказа


Доброй ночи!
Добрался до корзины и возник вопрос. У меня есть 3 типа доставки: самовывоз, курьером и почтой. Хочется сделать форму, в которой нужно сначала выбрать тип доставки, а потом уже выводить соответствующую форму для заполнения, т.к. для самовывоза практически ничего не нужно указывать, чего не скажешь о доставке почтой и наоборот. Т.е. изменять обязательные поля и показывать их. Можно сделать разные чанки с формами, но как правильно валидировать данные?

Спасибо!
24 сентября 2012, 23:48    Toyo   
0    273 0

Комментарии (5)

  1. Василий Наумкин 25 сентября 2012, 07:10 # 0
    Не нужно несколько чанков, нужно скрывать\показывать javascript определенные поля формы.
    А проверять их своим валидатором — FormIt это умеет. Показываю только его вызов:
    [[!FormIt?
    &customValidators=`hook_msValidateAddr`
    &validate=`city:hook_msValidateAddr`
    ]]

    То есть, подключаем валидатор и указываем его для любого поля, чтобы вызывался при сабмите.

    А вот и сам код валидатора https://gist.github.com/3779759 — проверяем только то, что нужно. Разберетесь дальше?
    1. Василий Наумкин 25 сентября 2012, 07:11 # 0
      В вызове FormIt должны быть и другие параметры, я привел только для валидатора — чтобы было видно.
      1. Toyo 25 сентября 2012, 13:46 # 0
        Практически все сделал, осталось понять, как указать один из вариантов доставки по-умолчанию…
        Спасибо!
        1. Василий Наумкин 25 сентября 2012, 14:31 # 0
          Если первый вариант — то [[+id:is=`1`:then=`checked`]].
          Если будет отмечен другой — то переключится.

          Если же вариант по умолчанию не в начале — то только javascript. Ну или исходники править.
        2. Toyo 25 сентября 2012, 13:50 # 0
          Я в getDelivery ковырянулся, но думаю, что это неправильно.

          https://gist.github.com/3780952
      Вы должны авторизоваться, чтобы оставлять комментарии.