Browse Source

Optional masks;

Ross Hadden 14 years ago
parent
commit
91f22f3f61
1 changed files with 20 additions and 3 deletions
  1. 20 3
      jquery.inputmask.js

+ 20 - 3
jquery.inputmask.js

@@ -510,9 +510,26 @@ This plugin is based on the masked input plugin written by Josh Bush (digitalbus
                                 opts.onincomplete.call(input);
                                 opts.onincomplete.call(input);
                             }
                             }
                             if (opts.clearIncomplete) {
                             if (opts.clearIncomplete) {
-                                if (opts.clearMaskOnLostFocus)
-                                    _val.call(input, '');
-                                else {
+                                if (opts.clearMaskOnLostFocus){
+                                	var result = '',
+                                		required = 0,
+                                		value = _val.call(input),
+                                		data = input.data('inputmask');
+                                	for(var i = 0, length = value.length; i < length; i++){
+                                		if(!data.tests[i].optionality){
+                                			required++;
+                                			if(value[i] !== data.placeholder){
+                                				result += value[i];
+                                			}
+                                		}else{
+                                			break;
+                                		}
+                                	}
+                                	if(result.length !== required){
+                                		result = '';
+                                	}
+                                    _val.call(input,result);
+                                } else {
                                     buffer = _buffer.slice();
                                     buffer = _buffer.slice();
                                     writeBuffer(input, buffer);
                                     writeBuffer(input, buffer);
                                 }
                                 }