From 18f62825a45a2bb72b99653390e787cfef102adb Mon Sep 17 00:00:00 2001 From: Kris Reeves Date: Sun, 7 Apr 2013 01:06:19 +0000 Subject: [PATCH 1/3] Don't wipe out existing data when setting a mask --- src/jquery.maskedinput.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jquery.maskedinput.js b/src/jquery.maskedinput.js index 749da65..45978a7 100644 --- a/src/jquery.maskedinput.js +++ b/src/jquery.maskedinput.js @@ -322,7 +322,7 @@ $.fn.extend({ settings.completed.call(input); }, 0); }); - checkVal(); //Perform initial check for existing values + input.caret(checkVal(true)); //Perform initial check for existing values }); } }); From c186ee30921fe3a6d314ed6ba0b7353a09daf7e3 Mon Sep 17 00:00:00 2001 From: Nuno Teixeira Date: Thu, 13 Jun 2013 16:33:42 +0100 Subject: [PATCH 2/3] Fix customized placeholder. This fixes #120 --- src/jquery.maskedinput.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/jquery.maskedinput.js b/src/jquery.maskedinput.js index 749da65..b78a976 100644 --- a/src/jquery.maskedinput.js +++ b/src/jquery.maskedinput.js @@ -56,6 +56,13 @@ $.fn.extend({ return { begin: begin, end: end }; } }, + // Placeholder getter + placeholderAt: function(index, settings) { + if (settings.placeholder[index] !== undefined) { + return settings.placeholder[index]; + } + return settings.placeholder; + }, unmask: function() { return this.trigger("unmask"); }, @@ -102,7 +109,7 @@ $.fn.extend({ mask.split(""), function(c, i) { if (c != '?') { - return defs[c] ? settings.placeholder : c; + return defs[c] ? input.placeholderAt(i) : c; } }), focusText = input.val(); @@ -129,7 +136,7 @@ $.fn.extend({ if (tests[i]) { if (j < len && tests[i].test(buffer[j])) { buffer[i] = buffer[j]; - buffer[j] = settings.placeholder; + buffer[j] = input.placeholderAt(i); } else { break; } @@ -147,7 +154,7 @@ $.fn.extend({ j, t; - for (i = pos, c = settings.placeholder; i < len; i++) { + for (i = pos, c = input.placeholderAt(i); i < len; i++) { if (tests[i]) { j = seekNext(i); t = buffer[i]; @@ -232,7 +239,7 @@ $.fn.extend({ var i; for (i = start; i < end && i < len; i++) { if (tests[i]) { - buffer[i] = settings.placeholder; + buffer[i] = input.placeholderAt(i); } } } @@ -249,7 +256,7 @@ $.fn.extend({ for (i = 0, pos = 0; i < len; i++) { if (tests[i]) { - buffer[i] = settings.placeholder; + buffer[i] = input.placeholderAt(i); while (pos++ < test.length) { c = test.charAt(pos - 1); if (tests[i].test(c)) { @@ -280,7 +287,7 @@ $.fn.extend({ input.data($.mask.dataName,function(){ return $.map(buffer, function(c, i) { - return tests[i]&&c!=settings.placeholder ? c : null; + return tests[i]&&c!=input.placeholderAt(i) ? c : null; }).join(''); }); From 717540066f9341777da0370d2efdab60ab201b70 Mon Sep 17 00:00:00 2001 From: Nuno Teixeira Date: Thu, 13 Jun 2013 16:47:07 +0100 Subject: [PATCH 3/3] Pass in missing `settings` argument --- src/jquery.maskedinput.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/jquery.maskedinput.js b/src/jquery.maskedinput.js index b78a976..c64c6e6 100644 --- a/src/jquery.maskedinput.js +++ b/src/jquery.maskedinput.js @@ -109,7 +109,7 @@ $.fn.extend({ mask.split(""), function(c, i) { if (c != '?') { - return defs[c] ? input.placeholderAt(i) : c; + return defs[c] ? input.placeholderAt(i, settings) : c; } }), focusText = input.val(); @@ -136,7 +136,7 @@ $.fn.extend({ if (tests[i]) { if (j < len && tests[i].test(buffer[j])) { buffer[i] = buffer[j]; - buffer[j] = input.placeholderAt(i); + buffer[j] = input.placeholderAt(i, settings); } else { break; } @@ -154,7 +154,7 @@ $.fn.extend({ j, t; - for (i = pos, c = input.placeholderAt(i); i < len; i++) { + for (i = pos, c = input.placeholderAt(i, settings); i < len; i++) { if (tests[i]) { j = seekNext(i); t = buffer[i]; @@ -239,7 +239,7 @@ $.fn.extend({ var i; for (i = start; i < end && i < len; i++) { if (tests[i]) { - buffer[i] = input.placeholderAt(i); + buffer[i] = input.placeholderAt(i, settings); } } } @@ -256,7 +256,7 @@ $.fn.extend({ for (i = 0, pos = 0; i < len; i++) { if (tests[i]) { - buffer[i] = input.placeholderAt(i); + buffer[i] = input.placeholderAt(i, settings); while (pos++ < test.length) { c = test.charAt(pos - 1); if (tests[i].test(c)) { @@ -287,7 +287,7 @@ $.fn.extend({ input.data($.mask.dataName,function(){ return $.map(buffer, function(c, i) { - return tests[i]&&c!=input.placeholderAt(i) ? c : null; + return tests[i]&&c!=input.placeholderAt(i, settings) ? c : null; }).join(''); });