Xác thực ngày bắt đầu và ngày kết thúc


14

Tôi đã làm việc trên mẫu quản trị nơi tôi muốn người dùng chọn Start DateEnd Date.

Tôi phải cung cấp xác nhận sao cho End Datephải lớn hơn Start Date.

nhập mô tả hình ảnh ở đây

Bất cứ ai có thể giúp tôi trong việc cung cấp lớp xác nhận defento Magento cho ngày bắt đầu và ngày kết thúc với kịch bản như được giải thích ở trên?

Nếu không thể với xác thực Magento mặc định, vui lòng gửi mã JS tùy chỉnh.

Ngoài ra đây là trong hình thức của tôi cho phạm vi ngày

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

Cảm ơn

Câu trả lời:


8

Hãy thử sử dụng validate-date-rangelớp trình xác nhận của Magento trên các lĩnh vực của bạn.

Nếu bạn thêm nó vào cả hai trường thì nó sẽ lấy ngày và so sánh hai giá trị.

Nếu nhận được giá trị đến ngày bằng cách sử dụng mã sau đây:

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

Vì vậy, những gì bạn sẽ cần phải làm là thêm một lớp trong định dạng date-range-your_attribute_code-fromdate-range-your_attribute_code-to. Làm điều này có nghĩa là Magento có thể liên kết hai lĩnh vực.

Để biết ví dụ về điều này, hãy xem tab thiết kế trên các trang CMS. app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.php

Sau đây là giải thích chi tiết hơn về các lớp:

  1. validate-date: điều này đảm bảo rằng giá trị đã nhập là một ngày hợp lệ,
  2. validate-date-range: điều này thực hiện so sánh giữa hai ngày khi có các lớp chính xác,
  3. date-range-custom_data-from, date-range-custom_data-to: các liên kết này hai ngày để chúng có thể được sử dụng trong kiểm tra phạm vi ngày, lưu ý rằng các ngày này phải giống nhau -to-from có nghĩa là nó có thể date-range-xxxx-fromdate-range-xxxx-totương ứng.

Hai câu hỏi: 1 ) How does this work -> 'class' => 'bắt buộc nhập ngày xác thực hợp lệ-ngày-phạm vi ngày phạm vi ngày-custom -th_theme- đến'` 2 ) How to input ngày-phạm vi-your_attribution_code-from` vì tôi không có mã thuộc tính tùy chỉnh của mình.
Jordan

@Jordan làm thế nào để bạn tạo biểu mẫu nếu bạn không có mã thuộc tính? Về mặt kỹ thuật, điều đó không quan trọng miễn là cả hai có cùng một thứ trong attribute_codeđó chỉ là liên kết hai lĩnh vực.
Phong tục David

Tôi chỉ sử dụng lớp được đề cập trong app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.phpvà nó đã làm việc. Tôi có cần thay đổi nó không?
Jordan

1
@Jordan bạn cần -from-tohậu tố trên các lớp học của bạn. Hãy thử date-range-start_data-fromdate-range-start_data-to
David Manners

1
Cảm ơn rất nhiều cho lời giải thích rõ ràng. Vấn đề là mã attrib duy nhất cho -to và -từ để kiểm tra phạm vi ngày.
Jordan

0

Tất cả các xác nhận hợp lệ được gắn với các quy tắc xác thực Java Script được định nghĩa trong

js / nguyên mẫu / verify.js

Tập tin

Bạn có thể tùy chỉnh mã của bạn ở đó


Bạn có mã tùy chỉnh sẽ làm việc?
Jordan

Tôi rất không khuyến khích sửa đổi tệp lõi Magento js/prototype/validation.js. Bạn có thể thêm các xác nhận tùy chỉnh trong một tệp JS riêng biệt ...
7ochem 3/03/2015
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.