浏览代码

Merge branch '2.x' into 2.6

Robin Herbots 12 年之前
父节点
当前提交
40e2355f1e
共有 8 个文件被更改,包括 81 次插入44 次删除
  1. 10 0
      README.md
  2. 3 2
      bower.json
  3. 1 1
      build.properties
  4. 1 1
      jquery.inputmask.jquery.json
  5. 1 5
      js/jquery.inputmask.js
  6. 1 0
      nuget/jquery.inputmask.linux.nuspec
  7. 1 0
      nuget/jquery.inputmask.nuspec
  8. 63 35
      qunit/tests.js

+ 10 - 0
README.md

@@ -22,6 +22,7 @@ Highlights:
 - support data-inputmask attribute  
 - multi-mask support  
 - regex-mask support
+- value formatting without input element
 
 Demo page see http://robinherbots.github.io/jquery.inputmask
 
@@ -581,6 +582,15 @@ $(document).ready(function(){
 });
 ```
 
+## Value formatting
+
+Instead of masking an input element it is also possible to use the inputmask for formatting given values.
+Think of formatting values to show in jqGrid or on other elements then inputs.
+
+```javascript
+var formattedDate = $.inputmask.format("2331973", { alias: "dd/mm/yyyy"});
+```
+
 ## Compiling with Google Closure Compiler
 
 First grab the sources from GitHub.  In the root you type ant.

+ 3 - 2
bower.json

@@ -1,6 +1,6 @@
 {
     "name": "jquery.inputmask",
-    "version": "2.4.16",
+    "version": "2.4.18",
     "main": "./dist/jquery.inputmask.bundle.js",
 	"description": "jquery.inputmask is a jquery plugin which create an input mask.
 
@@ -18,7 +18,8 @@ Highlights:
 - supports readonly/disabled/dir="rtl" attributes
 - support data-inputmask attribute
 - multi-mask support
-- regex-mask support",
+- regex-mask support
+- value formatting without input element",
 	"license": "http://opensource.org/licenses/mit-license.php",
     "dependencies": {
         "jquery": ">=1.7"

+ 1 - 1
build.properties

@@ -7,7 +7,7 @@ distdir = dist
 
 build.major = 2
 build.minor = 4
-build.revision = 16
+build.revision = 18
 
 target = jquery.inputmask.bundle.js
 target.min = jquery.inputmask.bundle.min.js

+ 1 - 1
jquery.inputmask.jquery.json

@@ -8,7 +8,7 @@
 		"inputmask",
 		"mask"
     ],
-    "version": "2.4.16",
+    "version": "2.4.18",
     "author": {
         "name": "Robin Herbots",
         "url": "http://github.com/RobinHerbots/jquery.inputmask"

+ 1 - 5
js/jquery.inputmask.js

@@ -951,7 +951,6 @@
                 }
                 if (c != undefined)
                     setBufferElement(buffer, seekPrevious(end), c);
-
                 if (getActiveMaskSet()["greedy"] == false) {
                     var trbuffer = truncateInput(buffer.join('')).split('');
                     buffer.length = trbuffer.length;
@@ -1162,8 +1161,6 @@
                                 pos.end = pos.begin;
                             }
                         }
-
-
                         var p = pos.begin;
                         results = isValid(p, c, strict);
                         if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
@@ -1347,7 +1344,6 @@
 
                     patchValueProperty(el);
 
-
                     if (opts.numericInput) opts.isNumeric = opts.numericInput;
                     if (el.dir == "rtl" || (opts.numericInput && opts.rightAlignNumerics) || (opts.isNumeric && opts.rightAlignNumerics))
                         $el.css("text-align", "right");
@@ -1634,7 +1630,7 @@
         };
         $.fn.inputmask = function (fn, options) {
             var opts = $.extend(true, {}, $.inputmask.defaults, options),
-            	masksets,
+                masksets,
                 activeMasksetIndex = 0;
 
             if (typeof fn === "string") {

+ 1 - 0
nuget/jquery.inputmask.linux.nuspec

@@ -27,6 +27,7 @@ Highlights:
 - support data-inputmask attribute
 - multi-mask support
 - regex-mask support
+- value formatting without input element
 </description>
         <tags>jQuery, plugins, input, form, inputmask, mask</tags>
     </metadata>

+ 1 - 0
nuget/jquery.inputmask.nuspec

@@ -27,6 +27,7 @@ Highlights:
 - support data-inputmask attribute
 - multi-mask support
 - regex-mask support
+- value formatting without input element
 </description>
         <tags>jQuery, plugins, input, form, inputmask, mask</tags>
     </metadata>

+ 63 - 35
qunit/tests.js

@@ -151,9 +151,10 @@ asyncTest("inputmask(\"9-AAA.999\") - change event", 1, function () {
     });
 
     $("#testmask")[0].focus();
-    $("#testmask").Type("1abc12");
-
-    $("#testmask").blur();
+    setTimeout(function () {
+        $("#testmask").Type("1abc12");
+        $("#testmask").blur();
+    }, 0);
 });
 
 asyncTest("inputmask(\"9-AAA.999\", { onincomplete: ... })", 1, function () {
@@ -454,7 +455,6 @@ test("inputmask(\"6703 9999 9999 9999 9\") ~ value=\"6703 1234 5678 9012 3\" - F
     $('body').append('<input type="text" id="testmask" value="6703 1234 5678 9012 3" />');
     $("#testmask").inputmask("6703 9999 9999 9999 9");
     equal($("#testmask").val(), "6703 1234 5678 9012 3", "Result " + $("#testmask").val());
-
     $("#testmask").remove();
 });
 
@@ -463,23 +463,25 @@ test("inputmask(\"6703 9999 9999 9999 9\") ~ type \"6703 1234 5678 9012 3\" + ba
     $("#testmask").inputmask("6703 9999 9999 9999 9");
     $("#testmask")[0].focus();
     $("#testmask").Type("1234567890123");
-    $("#testmask").SendKey(keyCodes.BACKSPACE);	
+    $("#testmask").SendKey(keyCodes.BACKSPACE);
 
     equal($("#testmask").val(), "6703 1234 5678 9012 _", "Result " + $("#testmask").val());
 
     $("#testmask").remove();
 });
 
-test("inputmask(\"6703 9999 9999 9999 9\") ~ type \"6703670367036\" + backspace - FransVdb", function () {
+asyncTest("inputmask(\"6703 9999 9999 9999 9\") ~ type \"6703670367036\" + backspace - FransVdb", function () {
     $('body').append('<input type="text" id="testmask" />');
     $("#testmask").inputmask("6703 9999 9999 9999 9");
     $("#testmask")[0].focus();
-    $("#testmask").Type("6703670367036");
-    $("#testmask").SendKey(keyCodes.BACKSPACE);	
-
-    equal($("#testmask").val(), "6703 6703 6703 6703 _", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
+    $("#testmask").click();
+    setTimeout(function () {
+        $("#testmask").Type("6703670367036");
+        $("#testmask").SendKey(keyCodes.BACKSPACE);
+        equal($("#testmask").val(), "6703 6703 6703 6703 _", "Result " + $("#testmask").val());
+        start();
+        $("#testmask").remove();
+    }, 0);
 });
 
 
@@ -488,11 +490,11 @@ asyncTest("inputmask(\"+7 (999) 999-99-99\") ~ paste \"+7 (+79114041112___) ___-
     $('body').append('<input type="text" id="testmask" />');
     $("#testmask").inputmask("+7 (999) 999-99-99");
     $("#testmask").paste("+7 (+79114041112___) ___-__-__");
-    
+
     setTimeout(function () {
-	equal($("#testmask").val(), "+7 (911) 404-11-12", "Result " + $("#testmask").val());
-	start();
-	$("#testmask").remove();
+        equal($("#testmask").val(), "+7 (911) 404-11-12", "Result " + $("#testmask").val());
+        start();
+        $("#testmask").remove();
     }, 0);
 
 });
@@ -500,18 +502,18 @@ asyncTest("inputmask(\"+7 (999) 999-99-99\") ~ paste \"+7 (+79114041112___) ___-
 asyncTest("inputmask(\"+7 (999) 999-99-99\") ~ paste \"0079114041112\" - monoblaine", function () {
     $('body').append('<input type="text" id="testmask" />');
     $("#testmask").inputmask("+7 (999) 999-99-99", {
-		onBeforePaste : function(pastedValue) {
-			//just simplistic for the test ;-)
-			var strippedValue = pastedValue.substr(2);
-			return strippedValue;
-		}
-	});
+        onBeforePaste: function (pastedValue) {
+            //just simplistic for the test ;-)
+            var strippedValue = pastedValue.substr(2);
+            return strippedValue;
+        }
+    });
     $("#testmask").paste("0079114041112");
-    
+
     setTimeout(function () {
-	equal($("#testmask").val(), "+7 (911) 404-11-12", "Result " + $("#testmask").val());
-	start();
-	$("#testmask").remove();
+        equal($("#testmask").val(), "+7 (911) 404-11-12", "Result " + $("#testmask").val());
+        start();
+        $("#testmask").remove();
     }, 0);
 
 });
@@ -962,7 +964,7 @@ test("inputmask(\"mm/dd/yyyy\") - select some input 1 - Guamaso", function () {
     $("#testmask").inputmask("mm/dd/yyyy");
 
     $("#testmask")[0].focus();
-	caret($("#testmask")[0], 0, 5);
+    caret($("#testmask")[0], 0, 5);
     $("#testmask").Type("1");
     equal($("#testmask").val(), "1m/dd/yyyy", "Result " + $("#testmask").val());
     $("#testmask").remove();
@@ -974,14 +976,26 @@ test("inputmask(\"dd/mm/yyyy\") - input 2331973 - remove 23", function () {
 
     $("#testmask")[0].focus();
     $("#testmask").Type("23031973");
-	caret($("#testmask"), 0,2);
-	$("#testmask").SendKey(keyCodes.DELETE);
-   
+    caret($("#testmask"), 0, 2);
+    $("#testmask").SendKey(keyCodes.DELETE);
+
     equal($("#testmask").val(), "dd/03/1973", "Result " + $("#testmask").val());
 
     $("#testmask").remove();
 });
 
+test("inputmask(\"dd/mm/yyyy\") - input 01011000 - Skiv22", function () {
+    $('body').append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("dd/mm/yyyy", { yearrange: { minyear: 1000, maxyear: 2099 } });
+
+    $("#testmask")[0].focus();
+    $("#testmask").Type("01011000");
+
+    equal($("#testmask").val(), "01/01/1000", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
 module("Numeric.Extensions");
 test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123", function () {
     $('body').append('<input type="text" id="testmask" />');
@@ -1208,8 +1222,8 @@ test("inputmask(\"decimal\") - value=\"123.45\" Replace last integer", function
 
     $("#testmask")[0].focus();
     $("#testmask").Type("123.45");
-	caret( $("#testmask"), 2,3);
-	$("#testmask").SendKey("7");
+    caret($("#testmask"), 2, 3);
+    $("#testmask").SendKey("7");
 
     equal($("#testmask").val(), "127.45", "Result " + $("#testmask").val());
     $("#testmask").remove();
@@ -1228,7 +1242,7 @@ test("inputmask - Multiple inputs masked, Integer mask doesn't allow typing - #4
 
     $("#testmask")[0].focus();
     $("#testmask").Type("12345");
-	
+
     equal($("#testmask").val(), "12,345", "Result " + $("#testmask").val());
     $("#testmask").remove();
     $("#testmask2").remove();
@@ -1403,6 +1417,7 @@ asyncTest("inputmask({ mask: \"€ 999.999.999,99\", { numericInput: true, radix
     $('body').append('<input type="text" id="testmask" />');
     $("#testmask").inputmask('€ 999.999.999,99', { numericInput: true, radixPoint: "," });
 
+    $("#testmask")[0].focus();
     $("#testmask").click();
     setTimeout(function () {
         $("#testmask").Type("123");
@@ -1417,6 +1432,7 @@ asyncTest("inputmask({ mask: \"€ 999.999.999,99\", { numericInput: true, radix
     $('body').append('<input type="text" id="testmask" />');
     $("#testmask").inputmask('€ 999.999.999,99', { numericInput: true, radixPoint: "," });
 
+    $("#testmask")[0].focus();
     $("#testmask").click();
     setTimeout(function () {
         $("#testmask").Type("123,45");
@@ -1726,12 +1742,13 @@ asyncTest("inputmask(\"phone\") - Brazil switch", 1, function () {
     $("#testmask").inputmask("phone", { "url": "http://rawgithub.com/RobinHerbots/jquery.inputmask/2.x/js/phone-codes/phone-codes.json" });
 
     setTimeout(function () {
-        
+        $("#testmask")[0].focus();
+        caret($("#testmask"), $("#testmask")[0].value.length); //for FF
+        $("#testmask").SendKey(keyCodes.BACKSPACE);
         $("#testmask").SendKey(keyCodes.BACKSPACE);
         $("#testmask").SendKey(keyCodes.BACKSPACE);
         $("#testmask").SendKey(keyCodes.BACKSPACE);
         $("#testmask").SendKey(keyCodes.BACKSPACE);
-		$("#testmask").SendKey(keyCodes.BACKSPACE);
         $("#testmask").Type("451234");
         equal($("#testmask").val(), "+55-12-12345-1234", "Result " + $("#testmask").val());
         start();
@@ -1796,6 +1813,17 @@ test("inputmask(\"ip\" - 192.168.1.100", function () {
     $("#testmask2").remove();
 });
 
+module("Value formatting");
+test("$.inputmask.format(\"2331973\", { alias: \"date\"})", function () {
+    var formattedValue =$.inputmask.format("2331973", { alias: "date"});
+    equal(formattedValue, "23/03/1973", "Result " + formattedValue);
+});
+
+test("$.inputmask.format(\"016501030020001DE1015170\", { mask: \"99 999 999 999 9999 \\D\\E*** 9999\"})", function () {
+    var formattedValue =$.inputmask.format("016501030020001DE1015170", { mask: "99 999 999 999 9999 \\D\\E*** 9999"});
+    equal(formattedValue, "01 650 103 002 0001 DE101 5170", "Result " + formattedValue);
+});
+
 module("Dynamic Masks");
 test("inputmask(\"*{1,20}@*{1,20}.*{2,6}[.*{2}]\" - email mask", function () {
     $('body').append('<input type="text" id="testmask" />');