Проверка даты начала и окончания


Я работал над формой администратора, где я хочу, чтобы пользователь выбрал Start Date и End Date.

Я должен обеспечить проверку таким образом, чтобы End Date должно быть больше, чем Start Date.

enter image description here

Может ли кто-нибудь помочь мне в предоставлении класса проверки по умолчанию Magento для даты начала и окончания по сценарию, как описано выше?

Если это невозможно с помощью проверки Magento по умолчанию, пожалуйста, опубликуйте пользовательский код JS.

Также это есть в моей форме на сегодняшний день диапазон

        $dateFormatIso = Mage::app()->getLocale()->getDateFormat(
            Mage_Core_Model_Locale::FORMAT_TYPE_SHORT
        );

$fieldset->addField('start_date', 'date', array(
            'label'     => Mage::helper('myhelper')->__('Start Date'),
            'name'      => 'start_date',
            'note'      => $this->__('Start Date'),
            'required'  => true,
            'image'     => $this->getSkinUrl('images/grid-cal.gif'),
            'format'    => $dateFormatIso,
             'class'    => 'required-entry validate-date validate-date-range date-range-start_date-from'
        ));

        $fieldset->addField('end_date', 'date', array(
            'label'     => Mage::helper('myhelper')->__('End Date'),
            'name'      => 'end_date',
            'note'      => $this->__('End Date'),
            'required'  => true,
            'image'     => $this->getSkinUrl('images/grid-cal.gif'),
            'format'    => $dateFormatIso,
            'class'     => 'required-entry validate-date validate-date-range date-range-end_date-to'
        ));

Спасибо

Author: Jordan, 2014-07-21

2 answers

Попробуйте использовать класс validate-date-range валидатора Magento в своих полях.

Если вы добавите это в оба поля, то он получит значение "На сегодняшний день" и сравнит два значения.

Если получить значение на сегодняшний день, используя следующий код:

var m = /\bdate-range-(\w+)-(\w+)\b/.exec(elm.className);
if (!m || m[2] == 'to' || Validation.get('IsEmpty').test(v)) {
    return true;
}

Поэтому вам нужно будет добавить класс в формате date-range-your_attribute_code-from и date-range-your_attribute_code-to. Это будет означать, что Magento сможет связать два поля.

Для примера этого ознакомьтесь с вкладкой "Дизайн" на страницах CMS. app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.php

В ниже приводится более подробное объяснение классов:

  1. validate-date: это гарантирует, что введенное значение является действительной датой,
  2. validate-date-range: это делает сравнение между двумя датами, когда у них правильные классы,
  3. date-range-custom_data-from, date-range-custom_data-to: они связывают две даты, чтобы их можно было использовать при проверке диапазона дат, обратите внимание, что они должны быть одинаковыми, кроме -to и -from означает, что это может быть date-range-xxxx-from и date-range-xxxx-to соответственно.
 8
Author: David Manners, 2018-08-29 10:39:11

Все проверки привязаны к правилам проверки Java-скриптов, определенным в разделе

Js/prototype/validation.js

Файл

Вы можете настроить свой код там

 0
Author: TBI Infotech, 2014-07-21 11:51:08