Html code:
<form name="FrmMessageSearch" ng-submit="searchMessages()" novalidate="novalidate">
<input type="text" name="fromDate" validate-from-date="{{message.toDate}}" ng-model="message.fromDate" jqdatepicker/>
<span ng-show="FrmMessageSearch.fromDate.$error.enterFromDate && FrmMessageSearch.fromDate.$dirty">Select From Date</span>
<span ng-show="FrmMessageSearch.fromDate.$error.validateFromDateRequired && FrmMessageSearch.fromDate.$dirty">From Date Should be less than To Date</span>
<input type="text" name="toDate" validate-from-date="{{message.fromDate}}" ng-model="message.toDate" jqdatepicker/>
<span ng-show="FrmMessageSearch.toDate.$error.enterToDate && FrmMessageSearch.toDate.$dirty">Select To Date</span>
<span ng-show="FrmMessageSearch.toDate.$error.validateToDate && FrmMessageSearch.toDate.$dirty">To Date should be greater than From Date</span>
<button ng-disabled="(!FrmMessageSearch.$valid)" class="btn btn-primary" type="submit">
</form>
Js Code:
app.directive('validateToDate', function($log)
{
return {
restrict : 'A',
require : 'ngModel',
link : function(scope, element, attr, controller)
{
controller.$parsers.unshift(function(value)
{
var toDate = Date.parse(value);
var fromDate = Date.parse(attr.validateToDate);
var valid;
if (value == '' && fromDate != '')
{
controller.$setValidity('enterToDate', false);
valid = false;
}
else
{
valid = true;
controller.$setValidity('enterToDate', true);
if (fromDate <= toDate)
{
valid = true;
controller.$setValidity('validateToDate', true);
}
else
{
valid = false;
controller.$setValidity('validateToDate', false);
}
}
return valid ? value : undefined;
})
}
};
})
app.directive('validateFromDate', function($log)
{
return {
restrict : 'A',
require : 'ngModel',
link : function(scope, element, attr, controller)
{
controller.$parsers.unshift(function(value)
{
var toDate = Date.parse(attr.validateFromDate);
var fromDate = Date.parse(value);
var valid;
if (value == '' && toDate != '')
{
controller.$setValidity('enterFromDate', false);
valid = false;
}
if (fromDate <= toDate)
{
valid = true;
controller.$setValidity('validateFromDate', true);
}
else
{
valid = false;
controller.$setValidity('validateFromDate', false);
}
return valid ? value : undefined;
})
}
};
})
What I am trying to do here is: 1) either both dates should be selected or none 2) if only one date is selected other should prompt error saying please select date 3) from date should be greater that to date Can some one please help how can I get this done, any help is highly appreciated, thanks