Проверка даты начала и окончания
Я работал над формой администратора, где я хочу, чтобы пользователь выбрал Start Date
и End Date
.
Я должен обеспечить проверку таким образом, чтобы End Date
должно быть больше, чем Start Date
.
Может ли кто-нибудь помочь мне в предоставлении класса проверки по умолчанию 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'
));
Спасибо
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
В ниже приводится более подробное объяснение классов:
-
validate-date
: это гарантирует, что введенное значение является действительной датой, -
validate-date-range
: это делает сравнение между двумя датами, когда у них правильные классы, -
date-range-custom_data-from
,date-range-custom_data-to
: они связывают две даты, чтобы их можно было использовать при проверке диапазона дат, обратите внимание, что они должны быть одинаковыми, кроме-to
и-from
означает, что это может бытьdate-range-xxxx-from
иdate-range-xxxx-to
соответственно.
Все проверки привязаны к правилам проверки Java-скриптов, определенным в разделе
Js/prototype/validation.js
Файл
Вы можете настроить свой код там