tests_numeric.js 37 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123
  1. module("Numeric.Extensions");
  2. test("€ Currency precision 2", function () {
  3. var $fixture = $("#qunit-fixture");
  4. $fixture.append('<input type="text" id="testmask" />');
  5. $("#testmask").inputmask("numeric", {
  6. groupSeparator: ",",
  7. placeholder: "0",
  8. autoGroup: true,
  9. digits: 2,
  10. digitsOptional: false,
  11. prefix: "€ "
  12. });
  13. $("#testmask")[0].focus();
  14. $("#testmask").Type("1234");
  15. equal($("#testmask").val(), "€ 1,234.00", "Result " + $("#testmask").val());
  16. $("#testmask").remove();
  17. });
  18. test("integer type 124 correct to 1234", function () {
  19. var $fixture = $("#qunit-fixture");
  20. $fixture.append('<input type="text" id="testmask" />');
  21. $("#testmask").inputmask("numeric", {
  22. groupSeparator: ",",
  23. autoGroup: true
  24. });
  25. $("#testmask")[0].focus();
  26. $("#testmask").Type("124");
  27. $.caret($("#testmask")[0], 2);
  28. $("#testmask").Type("3");
  29. equal($("#testmask").val(), "1,234", "Result " + $("#testmask").val());
  30. $("#testmask").remove();
  31. });
  32. test("numeric type 00000 - Webunity", function () {
  33. var $fixture = $("#qunit-fixture");
  34. $fixture.append('<input type="text" id="testmask" />');
  35. $("#testmask").inputmask("numeric", {
  36. groupSeparator: ",",
  37. autoGroup: true,
  38. integerDigits: 9
  39. });
  40. $("#testmask")[0].focus();
  41. $("#testmask").Type("00000");
  42. equal($("#testmask").val(), "0", "Result " + $("#testmask").val());
  43. $("#testmask").remove();
  44. });
  45. test("numeric -placeholder 0 type 00000 - Webunity", function () {
  46. var $fixture = $("#qunit-fixture");
  47. $fixture.append('<input type="text" id="testmask" />');
  48. $("#testmask").inputmask("numeric", {
  49. groupSeparator: ",",
  50. autoGroup: true,
  51. placeholder: "0"
  52. });
  53. $("#testmask")[0].focus();
  54. $("#testmask").Type("00000");
  55. equal($("#testmask")[0]._valueGet(), "0", "Result " + $("#testmask").val());
  56. $("#testmask").remove();
  57. });
  58. test("numeric placeholder 0 prefix € type 0.123 - Webunity", function () {
  59. var $fixture = $("#qunit-fixture");
  60. $fixture.append('<input type="text" id="testmask" />');
  61. $("#testmask").inputmask("numeric", {
  62. groupSeparator: ",",
  63. autoGroup: true,
  64. placeholder: "0",
  65. prefix: "€ "
  66. });
  67. $("#testmask")[0].focus();
  68. $("#testmask").Type("0.123");
  69. equal($("#testmask").val(), "€ 0.123", "Result " + $("#testmask").val());
  70. $("#testmask").remove();
  71. });
  72. test("numeric placeholder 0 prefix € type 0.123 - backspace - Webunity", function () {
  73. var $fixture = $("#qunit-fixture");
  74. $fixture.append('<input type="text" id="testmask" />');
  75. $("#testmask").inputmask("numeric", {
  76. groupSeparator: ",",
  77. autoGroup: true,
  78. placeholder: "0",
  79. prefix: "€ "
  80. });
  81. $("#testmask")[0].focus();
  82. $("#testmask").Type("0.123");
  83. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  84. equal($("#testmask").val(), "€ 0.12", "Result " + $("#testmask").val());
  85. $("#testmask").remove();
  86. });
  87. test("numeric placeholder 0 prefix € type 0.123 + add 1 in front - Webunity", function () {
  88. var $fixture = $("#qunit-fixture");
  89. $fixture.append('<input type="text" id="testmask" />');
  90. $("#testmask").inputmask("numeric", {
  91. groupSeparator: ",",
  92. autoGroup: true,
  93. placeholder: "0",
  94. prefix: "€ "
  95. });
  96. $("#testmask")[0].focus();
  97. $("#testmask").Type("0.123");
  98. $.caret($("#testmask")[0], 2);
  99. $("#testmask").Type("1");
  100. equal($("#testmask").val(), "€ 10.123", "Result " + $("#testmask").val());
  101. $("#testmask").remove();
  102. });
  103. test("numeric placeholder 0 autoGroup: false prefix € type 0.123 + add 123 in front - Webunity", function () {
  104. var $fixture = $("#qunit-fixture");
  105. $fixture.append('<input type="text" id="testmask" />');
  106. $("#testmask").inputmask("numeric", {
  107. groupSeparator: ",",
  108. autoGroup: false,
  109. placeholder: "0",
  110. prefix: "€ "
  111. });
  112. $("#testmask")[0].focus();
  113. $("#testmask").Type("0.123");
  114. $.caret($("#testmask")[0], 2);
  115. $("#testmask").Type("123");
  116. equal($("#testmask").val(), "€ 1230.123", "Result " + $("#testmask").val());
  117. $("#testmask").remove();
  118. });
  119. test("numeric placeholder 0 autoGroup: true prefix € type 0.123 + add 123 in front - Webunity", function () {
  120. var $fixture = $("#qunit-fixture");
  121. $fixture.append('<input type="text" id="testmask" />');
  122. $("#testmask").inputmask("numeric", {
  123. groupSeparator: ",",
  124. autoGroup: true,
  125. placeholder: "0",
  126. prefix: "€ "
  127. });
  128. $("#testmask")[0].focus();
  129. $("#testmask").Type("0.123");
  130. $.caret($("#testmask")[0], 2);
  131. $("#testmask").Type("123");
  132. equal($("#testmask").val(), "€ 1,230.123", "Result " + $("#testmask").val());
  133. $("#testmask").remove();
  134. });
  135. test("integer alias with integerDigits 9 & autogroup - type 123456789 - gigermocas", function () {
  136. var $fixture = $("#qunit-fixture");
  137. $fixture.append('<input type="text" id="testmask" />');
  138. $("#testmask").inputmask("integer", {
  139. groupSeparator: ",",
  140. autoGroup: true,
  141. integerDigits: 9
  142. });
  143. $("#testmask")[0].focus();
  144. $("#testmask").Type("123456789");
  145. equal($("#testmask").val(), "123,456,789", "Result " + $("#testmask").val());
  146. $("#testmask").remove();
  147. });
  148. test("integer alias with integerDigits 9 & autogroup - type 1234567890123456789 - gigermocas", function () {
  149. var $fixture = $("#qunit-fixture");
  150. $fixture.append('<input type="text" id="testmask" />');
  151. $("#testmask").inputmask("integer", {
  152. groupSeparator: ",",
  153. autoGroup: true,
  154. integerDigits: 9
  155. });
  156. $("#testmask")[0].focus();
  157. $("#testmask").Type("1234567890123456789");
  158. equal($("#testmask").val(), "123,456,789", "Result " + $("#testmask").val());
  159. $("#testmask").remove();
  160. });
  161. test("integer alias with integerDigits 4 & autogroup - type 1234567890123456789 - gigermocas", function () {
  162. var $fixture = $("#qunit-fixture");
  163. $fixture.append('<input type="text" id="testmask" />');
  164. $("#testmask").inputmask("integer", {
  165. groupSeparator: ",",
  166. autoGroup: true,
  167. integerDigits: 4
  168. });
  169. $("#testmask")[0].focus();
  170. $("#testmask").Type("1234567890123456789");
  171. equal($("#testmask").val(), "1,234", "Result " + $("#testmask").val());
  172. $("#testmask").remove();
  173. });
  174. test("decimal alias with integerDigits 9 & autogroup - type 123456789 - gigermocas", function () {
  175. var $fixture = $("#qunit-fixture");
  176. $fixture.append('<input type="text" id="testmask" />');
  177. $("#testmask").inputmask("decimal", {
  178. groupSeparator: ",",
  179. autoGroup: true,
  180. integerDigits: 9
  181. });
  182. $("#testmask")[0].focus();
  183. $("#testmask").Type("123456789");
  184. equal($("#testmask").val(), "123,456,789", "Result " + $("#testmask").val());
  185. $("#testmask").remove();
  186. });
  187. test("decimal alias with integerDigits 4 & autogroup - type 1234 - gigermocas", function () {
  188. var $fixture = $("#qunit-fixture");
  189. $fixture.append('<input type="text" id="testmask" />');
  190. $("#testmask").inputmask("decimal", {
  191. groupSeparator: ",",
  192. autoGroup: true,
  193. integerDigits: 4
  194. });
  195. $("#testmask")[0].focus();
  196. $("#testmask").Type("1234");
  197. equal($("#testmask").val(), "1,234", "Result " + $("#testmask").val());
  198. $("#testmask").remove();
  199. });
  200. test("numeric alias with allowMinus:false type=text - vijjj", function () {
  201. var $fixture = $("#qunit-fixture");
  202. $fixture.append('<input type="text" id="testmask" />');
  203. $("#testmask").inputmask("numeric", {
  204. radixPoint: ".",
  205. integerDigits: 6,
  206. allowMinus: false
  207. });
  208. $("#testmask")[0].focus();
  209. $("#testmask").Type("123456");
  210. $.caret($("#testmask"), 0);
  211. $("#testmask").SendKey("-");
  212. equal($("#testmask").val(), "123456", "Result " + $("#testmask").val());
  213. $("#testmask").remove();
  214. });
  215. test("numeric alias with allowMinus:false type=number - mask not applied - MartinVerges", function () {
  216. var $fixture = $("#qunit-fixture");
  217. $fixture.append('<input type="number" id="testmask" />');
  218. $("#testmask").inputmask("numeric", {
  219. radixPoint: ".",
  220. integerDigits: 6,
  221. allowMinus: false
  222. });
  223. $("#testmask")[0].focus();
  224. $("#testmask").Type("123456");
  225. $("#testmask").SendKey("-");
  226. //IE7 does not know type=number and treats as type=text
  227. ok($("#testmask").val() == "" || $("#testmask").val() == "123456", "Result " + $("#testmask").val());
  228. $("#testmask").remove();
  229. });
  230. test("inputmask(\"numeric\", { prefix: \"€ \" }\") - input 12345.12", function () {
  231. var $fixture = $("#qunit-fixture");
  232. $fixture.append('<input type="text" id="testmask" />');
  233. $("#testmask").inputmask("numeric", { prefix: "€ " });
  234. $("#testmask")[0].focus();
  235. $("#testmask").Type("12345.12");
  236. equal($("#testmask").val(), "€ 12345.12", "Result " + $("#testmask").val());
  237. $("#testmask").remove();
  238. });
  239. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123", function () {
  240. var $fixture = $("#qunit-fixture");
  241. $fixture.append('<input type="text" id="testmask" />');
  242. $("#testmask").inputmask("decimal", { autoGroup: true, groupSeparator: "," });
  243. $("#testmask")[0].focus();
  244. $("#testmask").SendKey("1");
  245. $("#testmask").SendKey("2");
  246. $("#testmask").SendKey("3");
  247. $("#testmask").SendKey("4");
  248. $("#testmask").SendKey("5");
  249. $("#testmask").SendKey(".");
  250. $("#testmask").SendKey("1");
  251. $("#testmask").SendKey("2");
  252. $("#testmask").SendKey("3");
  253. equal($("#testmask").val(), "12,345.123", "Result " + $("#testmask").val());
  254. $("#testmask").remove();
  255. });
  256. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\", decimalProtect: true }\") - input 12345.123 + remove .123", function () {
  257. var $fixture = $("#qunit-fixture");
  258. $fixture.append('<input type="text" id="testmask" />');
  259. $("#testmask").inputmask("decimal", { autoGroup: true, groupSeparator: ",", decimalProtect: true });
  260. $("#testmask")[0].focus();
  261. $("#testmask").Type("12345.123");
  262. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  263. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  264. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  265. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  266. equal($("#testmask").val(), "12,345", "Result " + $("#testmask").val());
  267. $("#testmask").remove();
  268. });
  269. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123 + replace .123 => .789", function () {
  270. var $fixture = $("#qunit-fixture");
  271. $fixture.append('<input type="text" id="testmask" />');
  272. $("#testmask").inputmask("decimal", { autoGroup: true, groupSeparator: "," });
  273. $("#testmask")[0].focus();
  274. $("#testmask").Type("12345.123");
  275. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  276. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  277. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  278. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  279. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  280. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  281. $("#testmask").Type(".789");
  282. equal($("#testmask").val(), "12,345.789", "Result " + $("#testmask").val());
  283. $("#testmask").remove();
  284. });
  285. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123 + replace .123 => .789", function () {
  286. var $fixture = $("#qunit-fixture");
  287. $fixture.append('<input type="text" id="testmask" />');
  288. $("#testmask").inputmask("decimal", { autoGroup: true, groupSeparator: "," });
  289. $("#testmask")[0].focus();
  290. $("#testmask").Type("12345.123");
  291. //$("#testmask").click();
  292. $.caret($("#testmask"), 6, 10);
  293. $("#testmask").Type(".789");
  294. equal($("#testmask").val(), "12,345.789", "Result " + $("#testmask").val());
  295. $("#testmask").remove();
  296. });
  297. test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: true }\") - input 12345.123 + remove .123", function () {
  298. var $fixture = $("#qunit-fixture");
  299. $fixture.append('<input type="text" id="testmask" />');
  300. $("#testmask").inputmask("decimal", { autoGroup: false, groupSeparator: ",", decimalProtect: true });
  301. $("#testmask")[0].focus();
  302. $("#testmask").Type("12345.123");
  303. //$("#testmask").click();
  304. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  305. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  306. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  307. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  308. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  309. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  310. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  311. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  312. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  313. $("#testmask").remove();
  314. });
  315. test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: false }\") - input 12345.123 + remove .123", function () {
  316. var $fixture = $("#qunit-fixture");
  317. $fixture.append('<input type="text" id="testmask" />');
  318. $("#testmask").inputmask("decimal", { autoGroup: false, groupSeparator: ",", decimalProtect: false });
  319. $("#testmask")[0].focus();
  320. $("#testmask").Type("12345.123");
  321. //$("#testmask").click();
  322. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  323. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  324. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  325. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  326. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  327. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  328. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  329. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  330. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  331. $("#testmask").remove();
  332. });
  333. test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: true }\") - input 12345.123 + replace .123 => .789", function () {
  334. var $fixture = $("#qunit-fixture");
  335. $fixture.append('<input type="text" id="testmask" />');
  336. $("#testmask").inputmask("decimal", { autoGroup: false, groupSeparator: ",", decimalProtect: true });
  337. $("#testmask")[0].focus();
  338. $("#testmask").Type("12345.123");
  339. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  340. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  341. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  342. $("#testmask").SendKey($.inputmask.keyCode.LEFT);
  343. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  344. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  345. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  346. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  347. $("#testmask").Type(".789");
  348. equal($("#testmask").val(), "12345.789", "Result " + $("#testmask").val());
  349. $("#testmask").remove();
  350. });
  351. test("inputmask(\"decimal\") - maxlength 10", function () {
  352. var $fixture = $("#qunit-fixture");
  353. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  354. $("#testmask").inputmask("decimal");
  355. $("#testmask")[0].focus();
  356. $("#testmask").Type("123456789012345");
  357. equal($("#testmask").val(), "1234567890", "Result " + $("#testmask").val());
  358. $("#testmask").remove();
  359. });
  360. test("inputmask(\"decimal, { repeat: 15 }\") - maxlength 10", function () {
  361. var $fixture = $("#qunit-fixture");
  362. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  363. $("#testmask").inputmask("decimal", { repeat: 15 });
  364. $("#testmask")[0].focus();
  365. $("#testmask").Type("123456789012345");
  366. equal($("#testmask").val(), "1234567890", "Result " + $("#testmask").val());
  367. $("#testmask").remove();
  368. });
  369. test("inputmask(\"decimal, { repeat: 5, decimalProtect: true }\") - maxlength 10", function () {
  370. var $fixture = $("#qunit-fixture");
  371. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  372. $("#testmask").inputmask("decimal", { repeat: 5, decimalProtect: true });
  373. $("#testmask")[0].focus();
  374. $("#testmask").Type("123456789012345");
  375. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  376. $("#testmask").remove();
  377. });
  378. test("inputmask(\"decimal, { repeat: 5, decimalProtect: false }\") - maxlength 10", function () {
  379. var $fixture = $("#qunit-fixture");
  380. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  381. $("#testmask").inputmask("decimal", { repeat: 5, decimalProtect: false });
  382. $("#testmask")[0].focus();
  383. $("#testmask").Type("123456789012345");
  384. equal($("#testmask").val(), "12345.6789", "Result " + $("#testmask").val());
  385. $("#testmask").remove();
  386. });
  387. test("inputmask(\"decimal\")", function () {
  388. var $fixture = $("#qunit-fixture");
  389. $fixture.append('<input type="text" id="testmask" />');
  390. $("#testmask").inputmask("decimal");
  391. $("#testmask")[0].focus();
  392. $("#testmask").Type("1234567890");
  393. $.caret($("#testmask"), 0, 10);
  394. $("#testmask").Type("12345");
  395. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  396. $("#testmask").remove();
  397. });
  398. test("inputmask(\"decimal\") - value=\"1234567890\"", function () {
  399. var $fixture = $("#qunit-fixture");
  400. $fixture.append('<input type="text" id="testmask" value="1234567890" />');
  401. $("#testmask").inputmask("decimal");
  402. $("#testmask")[0].focus();
  403. $.caret($("#testmask"), 0, 10);
  404. $("#testmask").Type("12345");
  405. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  406. $("#testmask").remove();
  407. });
  408. test("inputmask(\"decimal\")", function () {
  409. var $fixture = $("#qunit-fixture");
  410. $fixture.append('<input type="text" id="testmask" />');
  411. $("#testmask").inputmask("decimal");
  412. $("#testmask")[0].focus();
  413. $("#testmask").Type("1234567890");
  414. $.caret($("#testmask"), 3, 5);
  415. $("#testmask").SendKey("0");
  416. equal($("#testmask").val(), "123067890", "Result " + $("#testmask").val());
  417. $("#testmask").remove();
  418. });
  419. test("inputmask(\"decimal\") - value=\"1234567890\"", function () {
  420. var $fixture = $("#qunit-fixture");
  421. $fixture.append('<input type="text" id="testmask" value="1234567890" />');
  422. $("#testmask").inputmask("decimal");
  423. $("#testmask")[0].focus();
  424. $.caret($("#testmask"), 3, 5);
  425. $("#testmask").SendKey("0");
  426. equal($("#testmask").val(), "123067890", "Result " + $("#testmask").val());
  427. $("#testmask").remove();
  428. });
  429. test("inputmask(\"decimal\") - value=\"123.45\" Replace last integer", function () {
  430. var $fixture = $("#qunit-fixture");
  431. $fixture.append('<input type="text" id="testmask" />');
  432. $("#testmask").inputmask("decimal", { digits: 2 });
  433. $("#testmask")[0].focus();
  434. $("#testmask").Type("123.45");
  435. $.caret($("#testmask"), 2, 3);
  436. $("#testmask").SendKey("7");
  437. equal($("#testmask").val(), "127.45", "Result " + $("#testmask").val());
  438. $("#testmask").remove();
  439. });
  440. test("inputmask(\"decimal\", { digits: 2 }) - value=\"123\" - RomeroMsk", function () {
  441. var $fixture = $("#qunit-fixture");
  442. $fixture.append('<input type="text" id="testmask" />');
  443. $("#testmask").inputmask("decimal", { digits: 2 });
  444. $("#testmask")[0].focus();
  445. $("#testmask").Type("123");
  446. $.caret($("#testmask"), 0, 3);
  447. $("#testmask").SendKey(",,..");
  448. $("#testmask").SendKey($.inputmask.keyCode.RIGHT);
  449. $("#testmask").SendKey($.inputmask.keyCode.RIGHT); //needed in test
  450. $("#testmask").SendKey($.inputmask.keyCode.RIGHT); //needed in test
  451. $("#testmask").Type("45");
  452. equal($("#testmask").val(), "12345", "Result " + $("#testmask").val());
  453. $("#testmask").remove();
  454. });
  455. test("inputmask - Multiple inputs masked, Integer mask doesn't allow typing - #402 - albatrocity", function () {
  456. var $fixture = $("#qunit-fixture");
  457. $fixture.append('<input type="text" id="testmask" />');
  458. $fixture.append('<input type="text" id="testmask2" />');
  459. $("#testmask").inputmask("integer", {
  460. autoGroup: true,
  461. groupSeparator: ",",
  462. groupSize: 3
  463. });
  464. $("#testmask2").inputmask("(999)-999-9999");
  465. $("#testmask")[0].focus();
  466. $("#testmask").Type("12345");
  467. equal($("#testmask").val(), "12,345", "Result " + $("#testmask").val());
  468. $("#testmask").remove();
  469. $("#testmask2").remove();
  470. });
  471. test("decimal alias with groupseparator delete - YoussefTaghlabi", function () {
  472. var $fixture = $("#qunit-fixture");
  473. $fixture.append('<input type="text" id="testmask" />');
  474. $("#testmask").inputmask("decimal", {
  475. radixPoint: ".",
  476. groupSeparator: ",",
  477. groupSize: 3,
  478. digits: 2,
  479. autoGroup: true,
  480. allowPlus: false,
  481. allowMinus: true
  482. });
  483. $("#testmask")[0].focus();
  484. $("#testmask").Type("1234567");
  485. $.caret($("#testmask"), 0);
  486. $("#testmask").SendKey($.inputmask.keyCode.DELETE);
  487. equal($("#testmask").val(), "234,567", "Result " + $("#testmask").val());
  488. $("#testmask").remove();
  489. });
  490. test("decimal alias with groupseparator backspace - YoussefTaghlabi", function () {
  491. var $fixture = $("#qunit-fixture");
  492. $fixture.append('<input type="text" id="testmask" />');
  493. $("#testmask").inputmask("decimal", {
  494. radixPoint: ".",
  495. groupSeparator: ",",
  496. groupSize: 3,
  497. digits: 2,
  498. autoGroup: true,
  499. allowPlus: false,
  500. allowMinus: true
  501. });
  502. $("#testmask")[0].focus();
  503. $("#testmask").Type("1234567");
  504. $.caret($("#testmask"), 1);
  505. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  506. equal($("#testmask").val(), "234,567", "Result " + $("#testmask").val());
  507. $("#testmask").remove();
  508. });
  509. test("decimal alias with plus or minus & autogroup - type -123456 - YoussefTaghlabi", function () {
  510. var $fixture = $("#qunit-fixture");
  511. $fixture.append('<input type="text" id="testmask" />');
  512. $("#testmask").inputmask("decimal", {
  513. radixPoint: ".",
  514. groupSeparator: ",",
  515. groupSize: 3,
  516. digits: 2,
  517. autoGroup: true,
  518. allowPlus: true,
  519. allowMinus: true
  520. });
  521. $("#testmask")[0].focus();
  522. $("#testmask").Type("-123456");
  523. equal($("#testmask").val(), "-123,456", "Result " + $("#testmask").val());
  524. $("#testmask").remove();
  525. });
  526. test("decimal alias with plus or minus & autogroup - type 123465 - - YoussefTaghlabi", function () {
  527. var $fixture = $("#qunit-fixture");
  528. $fixture.append('<input type="text" id="testmask" />');
  529. $("#testmask").inputmask("decimal", {
  530. radixPoint: ".",
  531. groupSeparator: ",",
  532. groupSize: 3,
  533. digits: 2,
  534. autoGroup: true,
  535. allowPlus: true,
  536. allowMinus: true
  537. });
  538. $("#testmask")[0].focus();
  539. $("#testmask").Type("123456");
  540. $.caret($("#testmask"), 0);
  541. $("#testmask").SendKey("-");
  542. equal($("#testmask").val(), "-123,456", "Result " + $("#testmask").val());
  543. $("#testmask").remove();
  544. });
  545. test("decimal alias with plus or minus & autogroup", function () {
  546. var $fixture = $("#qunit-fixture");
  547. $fixture.append('<input type="text" id="testmask" />');
  548. $("#testmask").inputmask("decimal", {
  549. radixPoint: ".",
  550. groupSeparator: ",",
  551. groupSize: 3,
  552. digits: 2,
  553. autoGroup: true,
  554. allowPlus: true,
  555. allowMinus: true
  556. });
  557. $("#testmask")[0].focus();
  558. $("#testmask").Type("1234.56");
  559. equal($("#testmask").val(), "1,234.56", "Result " + $("#testmask").val());
  560. $("#testmask").remove();
  561. });
  562. test("decimal alias set value with val() - kochelmonster", function () {
  563. var $fixture = $("#qunit-fixture");
  564. $fixture.append('<input type="text" id="testmask" />');
  565. $("#testmask").inputmask("decimal", {
  566. radixPoint: ",",
  567. groupSeparator: ".",
  568. digits: 2,
  569. autoGroup: true,
  570. suffix: ' €'
  571. });
  572. $("#testmask").val("39.399.392,22 €");
  573. equal($("#testmask").val(), "39.399.392,22 €", "Result " + $("#testmask").val());
  574. $("#testmask").remove();
  575. });
  576. test("inputmask(\"decimal\") - value=\"123.1\" blur digitsoptional", function () {
  577. var $fixture = $("#qunit-fixture");
  578. $fixture.append('<input type="text" id="testmask" />');
  579. $("#testmask").inputmask("decimal", { digits: 3 });
  580. $("#testmask")[0].focus();
  581. $("#testmask").Type("123.1");
  582. $("#testmask").blur();
  583. equal($("#testmask").val(), "123.1", "Result " + $("#testmask").val());
  584. $("#testmask").remove();
  585. });
  586. test("inputmask(\"decimal\") - value=\"123.1\" blur", function () {
  587. var $fixture = $("#qunit-fixture");
  588. $fixture.append('<input type="text" id="testmask" />');
  589. $("#testmask").inputmask("decimal", { digits: 3, digitsOptional: false });
  590. $("#testmask")[0].focus();
  591. $("#testmask").Type("123.1");
  592. $("#testmask").blur();
  593. equal($("#testmask").val(), "123.100", "Result " + $("#testmask").val());
  594. $("#testmask").remove();
  595. });
  596. asyncTest("currency alias - 200000 => replace 2 to 3", function () {
  597. var $fixture = $("#qunit-fixture");
  598. $fixture.append('<input type="text" id="testmask" />');
  599. $("#testmask").inputmask("currency");
  600. $("#testmask")[0].focus();
  601. $("#testmask").click();
  602. setTimeout(function () {
  603. $("#testmask").Type("200000");
  604. $.caret($("#testmask"), 2, 3);
  605. $("#testmask").Type("3");
  606. start();
  607. equal($("#testmask").val(), "$ 300,000.00", "Result " + $("#testmask").val());
  608. $("#testmask").remove();
  609. }, 5);
  610. });
  611. test("inputmask(\"integer\") - -0 - laxmikantG", function () {
  612. var $fixture = $("#qunit-fixture");
  613. $fixture.append('<input type="text" id="testmask" />');
  614. $("#testmask").inputmask("integer", { placeholder: "0" });
  615. $("#testmask")[0].focus();
  616. $("#testmask").Type("-0");
  617. $("#testmask").blur();
  618. equal($("#testmask").val(), "", "Result " + $("#testmask").val());
  619. $("#testmask").remove();
  620. });
  621. test("inputmask(\"integer\") - 123- - laxmikantG", function () {
  622. var $fixture = $("#qunit-fixture");
  623. $fixture.append('<input type="text" id="testmask" />');
  624. $("#testmask").inputmask("integer", { placeholder: "0" });
  625. $("#testmask")[0].focus();
  626. $("#testmask").Type("123-");
  627. equal($("#testmask").val(), "-123", "Result " + $("#testmask").val());
  628. $("#testmask").remove();
  629. });
  630. test("inputmask(\"decimal\") - val(\"-5000,77\"); - ManRueda", function () {
  631. var $fixture = $("#qunit-fixture");
  632. $fixture.append('<input type="text" id="testmask" />');
  633. $("#testmask").inputmask('decimal', {
  634. integerDigits: 10,
  635. groupSeparator: '.',
  636. autoGroup: true,
  637. digits: 2,
  638. radixPoint: ',',
  639. groupSize: 3
  640. });
  641. $("#testmask").val("-5000,77");
  642. equal($("#testmask").val(), "-5.000,77", "Result " + $("#testmask").val());
  643. $("#testmask").remove();
  644. });
  645. test("inputmask(\"decimal\") - -0 - ManRueda", function () {
  646. var $fixture = $("#qunit-fixture");
  647. $fixture.append('<input type="text" id="testmask" />');
  648. $("#testmask").inputmask('decimal', {
  649. integerDigits: 10,
  650. groupSeparator: '.',
  651. autoGroup: true,
  652. digits: 2,
  653. radixPoint: ',',
  654. groupSize: 3
  655. });
  656. $("#testmask").val("-0");
  657. $("#testmask").blur();
  658. equal($("#testmask").val(), "0", "Result " + $("#testmask").val());
  659. $("#testmask").remove();
  660. });
  661. test("inputmask(\"integer\") - -5.000,77 - DrSammyD", function () {
  662. var $fixture = $("#qunit-fixture");
  663. $fixture.append('<input type="text" id="testmask" />');
  664. $("#testmask").inputmask('integer', { placeholder: "0" });
  665. $("#testmask").val("-5.000,77");
  666. $("#testmask").blur();
  667. equal($("#testmask").val(), "-5000", "Result " + $("#testmask").val());
  668. $("#testmask").remove();
  669. });
  670. asyncTest("inputmask(\"decimal\ placeholder :\"\" digitsoptional: false) - 123 - loostro", function () {
  671. var $fixture = $("body");
  672. $fixture.append('<input type="text" id="testmask" value="0,00" />');
  673. $("#testmask").inputmask("decimal", {
  674. radixPoint: ",",
  675. digits: 2,
  676. digitsOptional: false,
  677. autoGroup: true,
  678. groupSeparator: " ",
  679. groupSize: 3,
  680. allowPlus: false,
  681. allowMinus: false,
  682. });
  683. $("#testmask")[0].focus();
  684. $("#testmask").click();
  685. $.caret($("#testmask"), 0);
  686. setTimeout(function () {
  687. $("#testmask").Type("123");
  688. start();
  689. equal($("#testmask").val(), "123,00", "Result " + $("#testmask").val());
  690. $("#testmask").remove();
  691. }, 5);
  692. });
  693. asyncTest("inputmask(\"decimal\ placeholder :\"0\" digitsoptional: false) - .12 - YodaJM", function () {
  694. var $fixture = $("#qunit-fixture");
  695. $fixture.append('<input type="text" id="testmask" />');
  696. $("#testmask").inputmask('decimal', {
  697. digits: 2,
  698. placeholder: "0",
  699. digitsOptional: false
  700. });
  701. $("#testmask")[0].focus();
  702. $.caret($("#testmask"), 0, 4);
  703. setTimeout(function () {
  704. $("#testmask").Type(".12");
  705. start();
  706. equal($("#testmask").val(), "0.12", "Result " + $("#testmask").val());
  707. $("#testmask").remove();
  708. }, 0);
  709. });
  710. test("inputmask(\"decimal\") - '8100000.00' - ManRueda", function () {
  711. var $fixture = $("#qunit-fixture");
  712. $fixture.append('<input type="text" id="testmask" />');
  713. $("#testmask").inputmask('decimal', {
  714. integerDigits: 6,
  715. groupSeparator: '.',
  716. autoGroup: true,
  717. digits: 2,
  718. radixPoint: ',',
  719. groupSize: 3
  720. });
  721. $("#testmask").val("8100000.00");
  722. equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
  723. $("#testmask").remove();
  724. });
  725. test("inputmask(\"decimal\") - '12345678.12' - ManRueda", function () {
  726. var $fixture = $("#qunit-fixture");
  727. $fixture.append('<input type="text" id="testmask" />');
  728. $("#testmask").inputmask('decimal', {
  729. integerDigits: 6,
  730. groupSeparator: '.',
  731. autoGroup: true,
  732. digits: 2,
  733. radixPoint: ',',
  734. groupSize: 3
  735. });
  736. $("#testmask").val("12345678.12");
  737. equal($("#testmask").val(), "123.456,12", "Result " + $("#testmask").val());
  738. $("#testmask").remove();
  739. });
  740. test("inputmask(\"decimal\") - '8100000,00' - ManRueda", function () {
  741. var $fixture = $("#qunit-fixture");
  742. $fixture.append('<input type="text" id="testmask" />');
  743. $("#testmask").inputmask('decimal', {
  744. integerDigits: 6,
  745. groupSeparator: '.',
  746. autoGroup: true,
  747. digits: 2,
  748. radixPoint: ',',
  749. groupSize: 3
  750. });
  751. $("#testmask").val("8100000,00");
  752. equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
  753. $("#testmask").remove();
  754. });
  755. test("inputmask(\"decimal\") - 8100000.00 - ManRueda", function () {
  756. var $fixture = $("#qunit-fixture");
  757. $fixture.append('<input type="text" id="testmask" />');
  758. $("#testmask").inputmask('decimal', {
  759. integerDigits: 6,
  760. groupSeparator: '.',
  761. autoGroup: true,
  762. digits: 2,
  763. radixPoint: ',',
  764. groupSize: 3
  765. });
  766. $("#testmask").val(8100000.00);
  767. equal($("#testmask").val(), "810.000", "Result " + $("#testmask").val());
  768. $("#testmask").remove();
  769. });
  770. test("inputmask(\"decimal\") - 8100000.00 digitsoptional false - ManRueda", function () {
  771. var $fixture = $("#qunit-fixture");
  772. $fixture.append('<input type="text" id="testmask" />');
  773. $("#testmask").inputmask('decimal', {
  774. integerDigits: 6,
  775. groupSeparator: '.',
  776. autoGroup: true,
  777. digits: 2,
  778. digitsOptional: false,
  779. radixPoint: ',',
  780. groupSize: 3
  781. });
  782. $("#testmask").val(8100000.00);
  783. $("#testmask").blur();
  784. equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
  785. $("#testmask").remove();
  786. });
  787. test("inputmask(\"decimal\") - 810000.00 - ManRueda", function () {
  788. var $fixture = $("#qunit-fixture");
  789. $fixture.append('<input type="text" id="testmask" />');
  790. $("#testmask").inputmask('decimal', {
  791. integerDigits: 6,
  792. groupSeparator: '.',
  793. autoGroup: true,
  794. digits: 2,
  795. radixPoint: ',',
  796. groupSize: 3
  797. });
  798. $("#testmask").val('810000.00');
  799. equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
  800. $("#testmask").remove();
  801. });
  802. test("inputmask(\"decimal\") - 123456 78 - babupca", function () {
  803. var $fixture = $("#qunit-fixture");
  804. $fixture.append('<input type="text" id="testmask" />');
  805. $("#testmask").inputmask({
  806. alias: "decimal",
  807. integerDigits: 6,
  808. digits: 3,
  809. allowMinus: false,
  810. digitsOptional: false,
  811. placeholder: "0"
  812. });
  813. $("#testmask")[0].focus();
  814. $("#testmask").Type("123456");
  815. $.caret($("#testmask"), 8);
  816. $("#testmask").Type("78");
  817. $.caret($("#testmask"), 5);
  818. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  819. equal($("#testmask").val(), "12346.078", "Result " + $("#testmask").val());
  820. $("#testmask").remove();
  821. });
  822. asyncTest("currency alias - 1234 => del 1", function () {
  823. var $fixture = $("#qunit-fixture");
  824. $fixture.append('<input type="text" id="testmask" />');
  825. $("#testmask").inputmask("currency");
  826. $("#testmask")[0].focus();
  827. $("#testmask").click();
  828. setTimeout(function () {
  829. $("#testmask").Type("1234");
  830. $.caret($("#testmask"), 3);
  831. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  832. start();
  833. equal($("#testmask").val(), "$ 234.00", "Result " + $("#testmask").val());
  834. $("#testmask").remove();
  835. }, 5);
  836. });
  837. asyncTest("currency alias - 0.02 => type 1 in integer part", function () {
  838. var $fixture = $("#qunit-fixture");
  839. $fixture.append('<input type="text" id="testmask" />');
  840. $("#testmask").inputmask("currency");
  841. $("#testmask")[0].focus();
  842. $("#testmask").click();
  843. setTimeout(function () {
  844. $("#testmask").Type("0.02");
  845. $.caret($("#testmask"), 3);
  846. $("#testmask").SendKey("1");
  847. start();
  848. equal($("#testmask").val(), "$ 1.02", "Result " + $("#testmask").val());
  849. $("#testmask").remove();
  850. }, 5);
  851. });
  852. asyncTest("currency alias - 0.02 => position before 0 type 1 in integer part", function () {
  853. var $fixture = $("#qunit-fixture");
  854. $fixture.append('<input type="text" id="testmask" />');
  855. $("#testmask").inputmask("currency");
  856. $("#testmask")[0].focus();
  857. $("#testmask").click();
  858. setTimeout(function () {
  859. $("#testmask").Type("0.02");
  860. $.caret($("#testmask"), 2);
  861. $("#testmask").SendKey("1");
  862. start();
  863. equal($("#testmask").val(), "$ 10.02", "Result " + $("#testmask").val());
  864. $("#testmask").remove();
  865. }, 5);
  866. });
  867. asyncTest("currency alias - 1.23 => del 1 in integer part", function () {
  868. var $fixture = $("#qunit-fixture");
  869. $fixture.append('<input type="text" id="testmask" />');
  870. $("#testmask").inputmask("currency");
  871. $("#testmask")[0].focus();
  872. $("#testmask").click();
  873. setTimeout(function () {
  874. $("#testmask").Type("1.23");
  875. $.caret($("#testmask"), 3);
  876. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  877. start();
  878. equal($("#testmask").val(), "$ 0.23", "Result " + $("#testmask").val());
  879. $("#testmask").remove();
  880. }, 5);
  881. });
  882. asyncTest("currency alias - 1234.56 => delete all", function () {
  883. var $fixture = $("#qunit-fixture");
  884. $fixture.append('<input type="text" id="testmask" />');
  885. $("#testmask").inputmask("currency");
  886. $("#testmask")[0].focus();
  887. $("#testmask").click();
  888. setTimeout(function () {
  889. $("#testmask").Type("1234.56");
  890. $.caret($("#testmask"), 0, 10);
  891. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  892. start();
  893. equal($("#testmask")[0]._valueGet(), "$ 0.00", "Result " + $("#testmask")[0]._valueGet());
  894. $("#testmask").remove();
  895. }, 5);
  896. });
  897. asyncTest("numeric prefix='$' - paste 1234.56 - baileyjames9 & TheAndyBob", function () {
  898. var $fixture = $("#qunit-fixture");
  899. $fixture.append('<input type="text" id="testmask" />');
  900. $("#testmask").inputmask("numeric", {
  901. radixPoint: ".",
  902. groupSeparator: ",",
  903. digits: 2,
  904. autoGroup: true,
  905. prefix: '$' //No Space, this will truncate the first character
  906. });
  907. $("#testmask")[0].focus();
  908. $("#testmask").click();
  909. setTimeout(function () {
  910. $("#testmask").paste("1234.56");
  911. start();
  912. equal($("#testmask").val(), "$1,234.56", "Result " + $("#testmask").val());
  913. $("#testmask").remove();
  914. }, 5);
  915. });
  916. asyncTest("currency alias - 1234.56 => select integer press 1 - babupca", function () {
  917. var $fixture = $("#qunit-fixture");
  918. $fixture.append('<input type="text" id="testmask" />');
  919. $("#testmask").inputmask("currency");
  920. $("#testmask")[0].focus();
  921. $("#testmask").click();
  922. setTimeout(function () {
  923. $("#testmask").Type("1234.56");
  924. $.caret($("#testmask"), 0, 7);
  925. $("#testmask").SendKey("1");
  926. start();
  927. equal($("#testmask")[0]._valueGet(), "$ 1.56", "Result " + $("#testmask")[0]._valueGet());
  928. $("#testmask").remove();
  929. }, 5);
  930. });