Başlangıç ​​ve Bitiş Tarihi Doğrulaması


14

Ben kullanıcı seçmek istediğiniz yönetici formu üzerinde çalışıyor Start Dateve End Date.

Ben End Datedaha büyük olması gerektiği gibi doğrulama sağlamak zorunda Start Date.

resim açıklamasını buraya girin

Herkes pls yukarıda açıklandığı gibi senaryo ile başlangıç ​​ve bitiş tarihi için varsayılan Magento doğrulama sınıfı sağlamada bana yardımcı olabilir mi?

Varsayılan Magento doğrulaması ile mümkün değilse, lütfen özel JS kodu gönderin.

Ayrıca bu tarih aralığı için formumda

        $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'
        ));

Teşekkürler

Yanıtlar:


8

validate-date-rangeAlanlarınızda Magento'nun doğrulayıcı sınıfını kullanmayı deneyin .

Bunu her iki alana da eklerseniz, tarih alır ve iki değeri karşılaştırır.

Aşağıdaki kodu kullanarak tarih değerini alırsanız:

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

Peki ne yapmak gerekir biçiminde bir sınıf ekleyin date-range-your_attribute_code-fromve date-range-your_attribute_code-to. Bunu yapmak Magento'nun iki alanı birbirine bağlayabileceği anlamına gelir.

Bunun bir örneği için CMS sayfalarındaki tasarım sekmesine bakın. app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.php

Sınıflar hakkında daha ayrıntılı bir açıklama aşağıdadır:

  1. validate-date: girilen değerin geçerli bir tarih olmasını sağlar,
  2. validate-date-range: Bu, doğru sınıfların olduğu iki tarih arasındaki karşılaştırmayı yapar,
  3. date-range-custom_data-from, date-range-custom_data-to: Bunlar tarih içinde kullanılabileceğini iki tarih bu yüzden bu bağlantı, kontrol aralığı mesafeli olarak aynı olması gerektiğini not -tove-from o olabilir araçlarla date-range-xxxx-fromve date-range-xxxx-tosırasıyla.

İki soru: 1 ) How does this work -> 'class' => 'zorunlu giriş validate-date validate-date-date-range-custom_theme- to' '2 ) How to input date-range-your_attribute_code-from` gibi özel özellik kodum yok.
Ürdün

@Jordan Özellik kodunuz yoksa formu nasıl yapıyorsunuz? Teknik olarak, ikisi de aynı şeye sahip olduğu sürece önemli attribute_codedeğil, sadece iki alanı birbirine bağlamaktır.
David Manners

Az önce bahsettiğim sınıfı kullandım app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.phpve işe yaradı. Değiştirmem gerekiyor mu?
Ürdün

1
@Jordan sınıflarınızda -fromve -toson eklerine ihtiyacınız var . Deneyin date-range-start_data-fromvedate-range-start_data-to
David Manners

1
Açık açıklama için çok teşekkürler. Önemli olan tarih aralığını kontrol etmek için -to ve -from için benzersiz bir özellik kodudur.
Ürdün

0

Tüm doğrulama, aşağıda tanımlanan Java Script doğrulama kurallarına bağlıdır

js / prototip / validation.js

Dosya

Kodunuzu orada özelleştirebilirsiniz


Çalışacak özelleştirilmiş kodunuz var mı?
Ürdün

Magento çekirdek dosyasını değiştirmeyi kesinlikle tavsiye etmem js/prototype/validation.js. Ayrı bir JS dosyasına özel doğrulamalar ekleyebilirsiniz ...
7ochem
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.