浏览代码

Add support for dynamic options

BRAHIM 11 年之前
父节点
当前提交
01bd35f233
共有 1 个文件被更改,包括 18 次插入11 次删除
  1. 18 11
      src/js/validator/date.js

+ 18 - 11
src/js/validator/date.js

@@ -172,32 +172,39 @@
             message = options.message || $.fn.bootstrapValidator.i18n.date['default'];
 
             // declare the date, min and max objects
-            var date = null, min = null, max = null;
+            var date = null, min = null, max = null,
+                minOption = options.min, maxOption = options.max;
 
-            if(options.min) {
-                min = this.parseDate(options.min, dateFormat, separator);
+            if(minOption) {
+                if(isNaN(Date.parse(minOption))) {
+                    minOption = validator.getDynamicOption($field, minOption);
+                }
+                min = this.parseDate(minOption, dateFormat, separator, validator, $field);
             }
 
-            if(options.max) {
-                max = this.parseDate(options.max, dateFormat, separator);
+            if(maxOption) {
+                if(isNaN(Date.parse(maxOption))) {
+                    maxOption = validator.getDynamicOption($field, maxOption);
+                }
+                max = this.parseDate(maxOption, dateFormat, separator, validator, $field);
             }
 
             date = new Date(year, month, day, hours, minutes, seconds);
 
             switch(true) {
-                case(options.min && !options.max && valid):
+                case(minOption && !maxOption && valid):
                     valid   = date.getTime() >= min.getTime();
-                    message = options.message || $.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.date.min, options.min);
+                    message = options.message || $.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.date.min, minOption);
                     break;
 
-                case(options.max && !options.min && valid):
+                case(maxOption && !minOption && valid):
                     valid   = date.getTime() <= max.getTime();
-                    message = options.message || $.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.date.max, options.max);
+                    message = options.message || $.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.date.max, maxOption);
                     break;
 
-                case(options.max && options.min && valid):
+                case(maxOption && minOption && valid):
                     valid   = date.getTime() <= max.getTime() && date.getTime() >= min.getTime();
-                    message = options.message || $.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.date.range, [options.min, options.max]);
+                    message = options.message || $.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.date.range, [minOption, maxOption]);
                     break;
             }