Magento 2 – Date Validation on Custom Form Frontend

magento-2.1magento2

How can i validate the date field on frontend with magento default date validation class. I think it has one.

For required entry, I used data-validate:

<input type="text" placeholder="<?php /* @escapeNotVerified */ echo __('DOB (YYYY-MM-DD)') ?>" name="dob" id="dob" value="<?php echo $profileData['dob']; ?>" title="<?php /* @escapeNotVerified */ echo __('Date Of Birth') ?>" class="input-text validate-date" data-validate="{required:true}">

and added the form validate script:

<script type="text/javascript">
//added by navin
require(['jquery','mage/mage'], function(){
    var dataForm = jQuery('#edit-form-validate');
    dataForm.mage('validation', {});

});   

</script>

required validation is working fine but I want to validate if the input date is in correct date format.

This also arise a question, In which file magento defines all the validation class?

Best Answer

You can do it using errorPlacement function,

   <script type="text/javascript">
    //added by navin
    require(['jquery','mage/mage'], function(){
        var dataForm = jQuery('#edit-form-validate');
        dataForm.mage('validation', {
             errorPlacement: function(error, element) {
                    var errorPlacement = element;
                    console.log(element.val());
                    if (element.val()) {

                        //do your custom validation code.....
                    }
                }

        });

    });   

    </script>