Robin Herbots 11 年 前
コミット
bc6c23c5ca

+ 1 - 1
dist/inputmask/jquery.inputmask.numeric.extensions.js

@@ -120,7 +120,7 @@
             radixHandler: function(chrs, maskset, pos, strict, opts) {
                 if (!strict && chrs === opts.radixPoint) {
                     var radixPos = $.inArray(opts.radixPoint, maskset.buffer), integerValue = maskset.buffer.join("").match(opts.regex.integerPart(opts));
-                    if (-1 != radixPos) return maskset.validPositions[radixPos - 1] ? {
+                    if (-1 != radixPos && maskset.validPositions[radixPos]) return maskset.validPositions[radixPos - 1] ? {
                         caret: radixPos + 1
                     } : {
                         pos: integerValue.index,

+ 1 - 1
dist/jquery.inputmask.bundle.js

@@ -1854,7 +1854,7 @@
             radixHandler: function(chrs, maskset, pos, strict, opts) {
                 if (!strict && chrs === opts.radixPoint) {
                     var radixPos = $.inArray(opts.radixPoint, maskset.buffer), integerValue = maskset.buffer.join("").match(opts.regex.integerPart(opts));
-                    if (-1 != radixPos) return maskset.validPositions[radixPos - 1] ? {
+                    if (-1 != radixPos && maskset.validPositions[radixPos]) return maskset.validPositions[radixPos - 1] ? {
                         caret: radixPos + 1
                     } : {
                         pos: integerValue.index,

ファイルの差分が大きいため隠しています
+ 1 - 1
dist/jquery.inputmask.bundle.min.js


+ 3 - 3
js/jquery.inputmask.numeric.extensions.js

@@ -69,7 +69,7 @@ Optional extensions on the jquery.inputmask base
                     ($.inArray(opts.radixPoint, buffer) != -1 && pos >= $.inArray(opts.radixPoint, buffer)) ||
                     new RegExp('[-\+]').test(charAtPos)
                     )
-                     return { pos: pos };
+                    return { pos: pos };
                 var cbuf = buffer.slice();
                 if (charAtPos == opts.groupSeparator) {
                     cbuf.splice(pos--, 1);
@@ -149,7 +149,7 @@ Optional extensions on the jquery.inputmask base
                 if (!strict && chrs === opts.radixPoint) {
                     var radixPos = $.inArray(opts.radixPoint, maskset.buffer), integerValue = maskset.buffer.join('').match(opts.regex.integerPart(opts));
 
-                    if (radixPos != -1) {
+                    if (radixPos != -1 && maskset["validPositions"][radixPos]) {
                         if (maskset["validPositions"][radixPos - 1])
                             return { "caret": radixPos + 1 };
                         else return { "pos": integerValue.index, c: integerValue[0], "caret": radixPos + 1 };
@@ -193,7 +193,7 @@ Optional extensions on the jquery.inputmask base
                                             isValid = { "pos": pos, "remove": pos };
                                         } isValid = { pos: pos };
                                     }
-                                } 
+                                }
                             }
                         }
 

+ 3 - 0
qunit/qunit.html

@@ -13,6 +13,9 @@
   <script src="../dist/jquery.inputmask.bundle.js"></script>
   <script src="./simulator.js"></script>
   <script src="./tests_base.js"></script>
+  <script src="./tests_setvalue.js"></script>
+  <script src="./tests_paste.js"></script>
+  <script src="./tests_initialvalue.js"></script>
   <script src="./tests_date.js"></script>
   <script src="./tests_dynamic.js"></script>
   <script src="./tests_formatvalidate.js"></script>

+ 0 - 291
qunit/tests_base.js

@@ -414,294 +414,3 @@ test("inputmask({ mask: \"9\", repeat: 10, placeholder: \"\", numericInput: true
     $("#testmask").remove();
 });
 
-module("Initial value setting");
-
-test("inputmask(\"999:99\", { placeholder: \"0\"}) value=\"007:20\"", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" value="007:20" />');
-    $("#testmask").inputmask("999:99", { placeholder: "0" });
-
-    equal($("#testmask").val(), "007:20", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"01 650 103 002 0001 DE101 5170\" - wuSam", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" value="01 650 103 002 0001 DE101 5170" />');
-    $("#testmask").inputmask("99 999 999 999 9999 \\D\\E*** 9999");
-    equal($("#testmask").val(), "01 650 103 002 0001 DE101 5170", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" - wuSam", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
-    $("#testmask").inputmask("99 999 999 999 9999 \\D\\E*** 9999");
-    equal($("#testmask").val(), "01 650 103 002 0001 DE101 5170", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" replace 2 with 3 - wuSam", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
-    $("#testmask").inputmask("99 999 999 999 9999 \\D\\E*** 9999");
-    $.caret($("#testmask"), 13, 14);
-    $("#testmask").Type("3");
-    equal($("#testmask").val(), "01 650 103 003 0001 DE101 5170", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" replace 002 with 003 - wuSam", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
-    $("#testmask").inputmask("99 999 999 999 9999 \\D\\E*** 9999");
-    $.caret($("#testmask"), 11, 14);
-    $("#testmask").Type("003");
-    equal($("#testmask").val(), "01 650 103 003 0001 DE101 5170", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" replace 02 with 01 - wuSam", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
-    $("#testmask").inputmask("99 999 999 999 9999 \\D\\E*** 9999");
-    $.caret($("#testmask"), 12, 14);
-    $("#testmask").Type("01");
-    equal($("#testmask").val(), "01 650 103 001 0001 DE101 5170", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\", { greedy: false }) ~ value=\"016501030020001DE1015170\" replace 02 with 01 - wuSam", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
-    $("#testmask").inputmask("99 999 999 999 9999 \\D\\E*** 9999", { greedy: false });
-    $.caret($("#testmask"), 12, 14);
-    $("#testmask").Type("01");
-    equal($("#testmask").val(), "01 650 103 001 0001 DE101 5170", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-
-test("inputmask(\"\\D\\E***\") ~ value=\"DE001\" - wuSam", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" value="DE001" />');
-    $("#testmask").inputmask("\\D\\E***");
-    equal($("#testmask").val(), "DE001", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"decimal\") ~ value=\"123.45\"", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" value="123.45" />');
-    $("#testmask").inputmask("decimal");
-    equal($("#testmask").val(), "123.45", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"decimal\") ~ value=\"123.45\" - disabled input", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" value="123.45" disabled="disabled" />');
-    $("#testmask").inputmask("decimal");
-    equal($("#testmask").val(), "123.45", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"mm/yyyy\") ~ value=\"031973\" - disabled input", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" value="031973" disabled="disabled" />');
-    $("#testmask").inputmask("mm/yyyy");
-    equal($("#testmask").val(), "03/1973", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"6703 9999 9999 9999 9\") ~ value=\"6703 1234 5678 9012 3\" - FransVdb", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.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();
-});
-
-test("inputmask(\"6703 9999 9999 9999 9\") ~ type \"6703 1234 5678 9012 3\" + backspace - FransVdb", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-    $("#testmask").inputmask("6703 9999 9999 9999 9");
-    $("#testmask")[0].focus();
-    $("#testmask").Type("1234567890123");
-    $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
-
-    equal($("#testmask").val(), "6703 1234 5678 9012 _", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-asyncTest("inputmask(\"6703 9999 9999 9999 9\") ~ type \"6703670367036\" + backspace - FransVdb", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-    $("#testmask").inputmask("6703 9999 9999 9999 9");
-    $("#testmask")[0].focus();
-    $("#testmask").click();
-    setTimeout(function () {
-        $("#testmask").Type("6703670367036");
-        $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
-        equal($("#testmask").val(), "6703 6703 6703 6703 _", "Result " + $("#testmask").val());
-        start();
-        $("#testmask").remove();
-    }, 0);
-});
-
-
-module("Paste value");
-asyncTest("inputmask(\"+7 (999) 999-99-99\") ~ paste \"+7 (+79114041112___) ___-__-__\"", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-    $("#testmask").inputmask("+7 (999) 999-99-99");
-    $("#testmask")[0].focus();
-    $("#testmask").paste("+7 (+79114041112___) ___-__-__");
-
-    setTimeout(function () {
-        equal($("#testmask").val(), "+7 (911) 404-11-12", "Result " + $("#testmask").val());
-        start();
-        $("#testmask").remove();
-    }, 0);
-
-});
-
-asyncTest("inputmask(\"+7 (999) 999-99-99\") ~ paste \"0079114041112\" - monoblaine", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.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;
-        }
-    });
-    $("#testmask")[0].focus();
-    $("#testmask").paste("0079114041112");
-
-    setTimeout(function () {
-        equal($("#testmask").val(), "+7 (911) 404-11-12", "Result " + $("#testmask").val());
-        start();
-        $("#testmask").remove();
-    }, 0);
-
-});
-
-asyncTest("inputmask(\"+32(999)99-99-99\", { nojumps: true, nojumpsThreshold: 4 }) ~ paste \"+32(123)12-12-12\"", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-    $("#testmask").inputmask("+32(999)99-99-99", { nojumps: true, nojumpsThreshold: 4 });
-    $("#testmask")[0].focus();
-    $("#testmask").paste("+32(123)12-12-12");
-
-    setTimeout(function () {
-        equal($("#testmask").val(), "+32(123)12-12-12", "Result " + $("#testmask").val());
-        start();
-        $("#testmask").remove();
-    }, 0);
-});
-
-asyncTest("inputmask(\"+32(999)99-99-99\", { nojumps: true, nojumpsThreshold: 4 }) ~ paste \"32(123)12-12-12\"", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-    $("#testmask").inputmask("+32(999)99-99-99", { nojumps: true, nojumpsThreshold: 4 });
-    $("#testmask")[0].focus();
-    $("#testmask").paste("32(123)12-12-12");
-
-    setTimeout(function () {
-        equal($("#testmask").val(), "+32(123)12-12-12", "Result " + $("#testmask").val());
-        start();
-        $("#testmask").remove();
-    }, 0);
-});
-
-asyncTest("inputmask(\"+32(999)99-99-99\", { nojumps: true, nojumpsThreshold: 4 }) ~ paste \"(123)12-12-12\"", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-    $("#testmask").inputmask("+32(999)99-99-99", { nojumps: true, nojumpsThreshold: 4 });
-    $("#testmask")[0].focus();
-    $("#testmask").paste("(123)12-12-12");
-
-    setTimeout(function () {
-        equal($("#testmask").val(), "+32(123)12-12-12", "Result " + $("#testmask").val());
-        start();
-        $("#testmask").remove();
-    }, 0);
-});
-
-asyncTest("inputmask(\"+32(999)99-99-99\", { nojumps: true, nojumpsThreshold: 4 }) ~ paste \"32473890428\"", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-    $("#testmask").inputmask("+32(999)99-99-99", { nojumps: true, nojumpsThreshold: 4 });
-    $("#testmask")[0].focus();
-    $("#testmask").paste("32473890428");
-
-    setTimeout(function () {
-        equal($("#testmask").val(), "+32(473)89-04-28", "Result " + $("#testmask").val());
-        start();
-        $("#testmask").remove();
-    }, 0);
-});
-
-module("Set value with fn.val");
-test("inputmask(\"decimal\") ~ value=\"123.45\"", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-    $("#testmask").inputmask("decimal");
-    $("#testmask").val("123.45");
-    equal($("#testmask").val(), "123.45", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"9\") ~ value=\"1\"", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" />');
-    $("#testmask").inputmask("9");
-    $("#testmask").val("1");
-    equal($("#testmask").val(), "1", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"decimal\") ~ .val(\"123.45\") - disabled input", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" disabled="disabled" />');
-    $("#testmask").inputmask("decimal");
-    $("#testmask").val("123.45");
-    equal($("#testmask").val(), "123.45", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask(\"mm/yyyy\") ~ .val(\"031973\") - disabled input", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" disabled="disabled" />');
-    $("#testmask").inputmask("mm/yyyy");
-    $("#testmask").val("031973");
-    equal($("#testmask").val(), "03/1973", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});
-
-test("inputmask({ \"mask\": \"(999) 999-9999\" }) ~ .val(\"8144419449\") - type=\"tel\" - bodrick", function () {
-    var $fixture = $("#qunit-fixture");
-    $fixture.append('<input type="text" id="testmask" disabled="disabled" />');
-    $("#testmask").inputmask({ "mask": "(999) 999-9999" });
-    $("#testmask").val("8144419449");
-    equal($("#testmask").val(), "(814) 441-9449", "Result " + $("#testmask").val());
-
-    $("#testmask").remove();
-});

+ 147 - 0
qunit/tests_initialvalue.js

@@ -0,0 +1,147 @@
+module("Initial value setting");
+
+test("inputmask(\"999:99\", { placeholder: \"0\"}) value=\"007:20\"", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" value="007:20" />');
+    $("#testmask").inputmask("999:99", { placeholder: "0" });
+
+    equal($("#testmask").val(), "007:20", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"01 650 103 002 0001 DE101 5170\" - wuSam", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" value="01 650 103 002 0001 DE101 5170" />');
+    $("#testmask").inputmask("99 999 999 999 9999 \\D\\E*** 9999");
+    equal($("#testmask").val(), "01 650 103 002 0001 DE101 5170", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" - wuSam", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
+    $("#testmask").inputmask("99 999 999 999 9999 \\D\\E*** 9999");
+    equal($("#testmask").val(), "01 650 103 002 0001 DE101 5170", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" replace 2 with 3 - wuSam", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
+    $("#testmask").inputmask("99 999 999 999 9999 \\D\\E*** 9999");
+    $.caret($("#testmask"), 13, 14);
+    $("#testmask").Type("3");
+    equal($("#testmask").val(), "01 650 103 003 0001 DE101 5170", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" replace 002 with 003 - wuSam", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
+    $("#testmask").inputmask("99 999 999 999 9999 \\D\\E*** 9999");
+    $.caret($("#testmask"), 11, 14);
+    $("#testmask").Type("003");
+    equal($("#testmask").val(), "01 650 103 003 0001 DE101 5170", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\") ~ value=\"016501030020001DE1015170\" replace 02 with 01 - wuSam", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
+    $("#testmask").inputmask("99 999 999 999 9999 \\D\\E*** 9999");
+    $.caret($("#testmask"), 12, 14);
+    $("#testmask").Type("01");
+    equal($("#testmask").val(), "01 650 103 001 0001 DE101 5170", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"99 999 999 999 9999 \\D\\E*** 9999\", { greedy: false }) ~ value=\"016501030020001DE1015170\" replace 02 with 01 - wuSam", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" value="016501030020001DE1015170" />');
+    $("#testmask").inputmask("99 999 999 999 9999 \\D\\E*** 9999", { greedy: false });
+    $.caret($("#testmask"), 12, 14);
+    $("#testmask").Type("01");
+    equal($("#testmask").val(), "01 650 103 001 0001 DE101 5170", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+
+test("inputmask(\"\\D\\E***\") ~ value=\"DE001\" - wuSam", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" value="DE001" />');
+    $("#testmask").inputmask("\\D\\E***");
+    equal($("#testmask").val(), "DE001", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"decimal\") ~ value=\"123.45\"", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" value="123.45" />');
+    $("#testmask").inputmask("decimal");
+    equal($("#testmask").val(), "123.45", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"decimal\") ~ value=\"123.45\" - disabled input", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" value="123.45" disabled="disabled" />');
+    $("#testmask").inputmask("decimal");
+    equal($("#testmask").val(), "123.45", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"mm/yyyy\") ~ value=\"031973\" - disabled input", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" value="031973" disabled="disabled" />');
+    $("#testmask").inputmask("mm/yyyy");
+    equal($("#testmask").val(), "03/1973", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"6703 9999 9999 9999 9\") ~ value=\"6703 1234 5678 9012 3\" - FransVdb", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.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();
+});
+
+test("inputmask(\"6703 9999 9999 9999 9\") ~ type \"6703 1234 5678 9012 3\" + backspace - FransVdb", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("6703 9999 9999 9999 9");
+    $("#testmask")[0].focus();
+    $("#testmask").Type("1234567890123");
+    $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
+
+    equal($("#testmask").val(), "6703 1234 5678 9012 _", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+asyncTest("inputmask(\"6703 9999 9999 9999 9\") ~ type \"6703670367036\" + backspace - FransVdb", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("6703 9999 9999 9999 9");
+    $("#testmask")[0].focus();
+    $("#testmask").click();
+    setTimeout(function () {
+        $("#testmask").Type("6703670367036");
+        $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
+        equal($("#testmask").val(), "6703 6703 6703 6703 _", "Result " + $("#testmask").val());
+        start();
+        $("#testmask").remove();
+    }, 0);
+});
+

+ 106 - 0
qunit/tests_paste.js

@@ -0,0 +1,106 @@
+module("Paste value");
+asyncTest("inputmask(\"+7 (999) 999-99-99\") ~ paste \"+7 (+79114041112___) ___-__-__\"", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("+7 (999) 999-99-99");
+    $("#testmask")[0].focus();
+    $("#testmask").paste("+7 (+79114041112___) ___-__-__");
+
+    setTimeout(function () {
+        equal($("#testmask").val(), "+7 (911) 404-11-12", "Result " + $("#testmask").val());
+        start();
+        $("#testmask").remove();
+    }, 0);
+
+});
+asyncTest("inputmask(\"+7 (999) 999-99-99\") ~ paste \"+7 (+7 (9114041112___) ___-__-__\"", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("+7 (999) 999-99-99");
+    $("#testmask")[0].focus();
+    $("#testmask").paste("+7 (+7 (9114041112___) ___-__-__");
+
+    setTimeout(function () {
+        equal($("#testmask").val(), "+7 (911) 404-11-12", "Result " + $("#testmask").val());
+        start();
+        $("#testmask").remove();
+    }, 0);
+
+});
+
+asyncTest("inputmask(\"+7 (999) 999-99-99\") ~ paste \"0079114041112\" - monoblaine", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.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;
+        }
+    });
+    $("#testmask")[0].focus();
+    $("#testmask").paste("0079114041112");
+
+    setTimeout(function () {
+        equal($("#testmask").val(), "+7 (911) 404-11-12", "Result " + $("#testmask").val());
+        start();
+        $("#testmask").remove();
+    }, 0);
+
+});
+
+asyncTest("inputmask(\"+32(999)99-99-99\", { nojumps: true, nojumpsThreshold: 4 }) ~ paste \"+32(123)12-12-12\"", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("+32(999)99-99-99", { nojumps: true, nojumpsThreshold: 4 });
+    $("#testmask")[0].focus();
+    $("#testmask").paste("+32(123)12-12-12");
+
+    setTimeout(function () {
+        equal($("#testmask").val(), "+32(123)12-12-12", "Result " + $("#testmask").val());
+        start();
+        $("#testmask").remove();
+    }, 0);
+});
+
+asyncTest("inputmask(\"+32(999)99-99-99\", { nojumps: true, nojumpsThreshold: 4 }) ~ paste \"32(123)12-12-12\"", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("+32(999)99-99-99", { nojumps: true, nojumpsThreshold: 4 });
+    $("#testmask")[0].focus();
+    $("#testmask").paste("32(123)12-12-12");
+
+    setTimeout(function () {
+        equal($("#testmask").val(), "+32(123)12-12-12", "Result " + $("#testmask").val());
+        start();
+        $("#testmask").remove();
+    }, 0);
+});
+
+asyncTest("inputmask(\"+32(999)99-99-99\", { nojumps: true, nojumpsThreshold: 4 }) ~ paste \"(123)12-12-12\"", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("+32(999)99-99-99", { nojumps: true, nojumpsThreshold: 4 });
+    $("#testmask")[0].focus();
+    $("#testmask").paste("(123)12-12-12");
+
+    setTimeout(function () {
+        equal($("#testmask").val(), "+32(123)12-12-12", "Result " + $("#testmask").val());
+        start();
+        $("#testmask").remove();
+    }, 0);
+});
+
+asyncTest("inputmask(\"+32(999)99-99-99\", { nojumps: true, nojumpsThreshold: 4 }) ~ paste \"32473890428\"", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("+32(999)99-99-99", { nojumps: true, nojumpsThreshold: 4 });
+    $("#testmask")[0].focus();
+    $("#testmask").paste("32473890428");
+
+    setTimeout(function () {
+        equal($("#testmask").val(), "+32(473)89-04-28", "Result " + $("#testmask").val());
+        start();
+        $("#testmask").remove();
+    }, 0);
+});

+ 124 - 0
qunit/tests_setvalue.js

@@ -0,0 +1,124 @@
+module("Set value with fn.val");
+test("inputmask(\"decimal\") ~ value=\"123.45\"", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("decimal");
+    $("#testmask").val("123.45");
+    equal($("#testmask").val(), "123.45", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"9\") ~ value=\"1\"", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("9");
+    $("#testmask").val("1");
+    equal($("#testmask").val(), "1", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"decimal\") ~ .val(\"123.45\") - disabled input", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" disabled="disabled" />');
+    $("#testmask").inputmask("decimal");
+    $("#testmask").val("123.45");
+    equal($("#testmask").val(), "123.45", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask(\"mm/yyyy\") ~ .val(\"031973\") - disabled input", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" disabled="disabled" />');
+    $("#testmask").inputmask("mm/yyyy");
+    $("#testmask").val("031973");
+    equal($("#testmask").val(), "03/1973", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test("inputmask({ \"mask\": \"(999) 999-9999\" }) ~ .val(\"8144419449\") - type=\"tel\" - bodrick", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="tel" id="testmask" disabled="disabled" />');
+    $("#testmask").inputmask({ "mask": "(999) 999-9999" });
+    $("#testmask").val("8144419449");
+    equal($("#testmask").val(), "(814) 441-9449", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test(".inputmask('decimal',{ alias:\"decimal\",integerDigits:9,digits:3,digitsOptional: false,placeholder: '0' }); - '2000.000' - vijjj", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask('decimal', { alias: "decimal", integerDigits: 9, digits: 3, digitsOptional: false, placeholder: '0' });
+    $("#testmask").val('2000.000');
+    equal($("#testmask").val(), "2000.000", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test(".inputmask('decimal',{ alias:\"decimal\",integerDigits:9,digits:3,digitsOptional: false,placeholder: '0' }); - 3000.000 - vijjj", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask('decimal', { alias: "decimal", integerDigits: 9, digits: 3, digitsOptional: false, placeholder: '0' });
+    $("#testmask").val(3000.000);
+    equal($("#testmask").val(), "3000.000", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test(".inputmask('decimal',{ alias:\"decimal\",integerDigits:9,digits:3,digitsOptional: false,placeholder: '0' }); - '4000.00' - vijjj", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask('decimal', { alias: "decimal", integerDigits: 9, digits: 3, digitsOptional: false, placeholder: '0' });
+    $("#testmask").val('4000.00');
+    equal($("#testmask").val(), "4000.000", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test(".inputmask('decimal',{ alias:\"decimal\",integerDigits:9,digits:3,digitsOptional: false,placeholder: '0' }); - '5000.000' - vijjj", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask('decimal', { alias: "decimal", integerDigits: 9, digits: 3, digitsOptional: false, placeholder: '0' });
+    document.getElementById('testmask').value = '5000.000';
+    equal($("#testmask").val(), "5000.000", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test(".inputmask(\"mask\", {\"mask\": \"+7 (999) 999-99-99\"}); - \"+7 (705) 123-45-67\" - serious-andy", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("mask", { "mask": "+7 (999) 999-99-99" });
+    $("#testmask").val('+7 (705) 123-45-67');
+    equal($("#testmask").val(), "+7 (705) 123-45-67", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+test(".inputmask(\"mask\", {\"mask\": \"+375 (99) 999-99-99\"}); - \"+375 (37) 999-99-99\" - PavelTyk", function () {
+    var $fixture = $("#qunit-fixture");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("mask", { "mask": "+375 (99) 999-99-99" });
+    $("#testmask").val('+375 (37) 999-99-99');
+    equal($("#testmask").val(), "+375 (37) 999-99-99", "Result " + $("#testmask").val());
+
+    $("#testmask").remove();
+});
+
+asyncTest(".inputmask(\"mask\", {\"mask\": \"+7(999)999-99-99\"}); - '7771231234' + '' - moongrate", function () {
+    var $fixture = $("body");
+    $fixture.append('<input type="text" id="testmask" />');
+    $("#testmask").inputmask("mask", { "mask": "+7(999)999-99-99" });
+    $("#testmask")[0].focus();
+    setTimeout(function () {
+        $("#testmask").Type('7771231234');
+        $("#testmask").val($("#testmask").val());
+        start();
+        equal($("#testmask").val(), "+7(777)123-12-34", "Result " + $("#testmask").val());
+        $("#testmask").remove();
+    }, 0);
+});