tests_numeric.js 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164
  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. asyncTest("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. setTimeout(function () {
  584. start();
  585. equal($("#testmask").val(), "123.1", "Result " + $("#testmask").val());
  586. $("#testmask").remove();
  587. }, 0);
  588. });
  589. asyncTest("inputmask(\"decimal\") - value=\"123.1\" blur", function () {
  590. var $fixture = $("#qunit-fixture");
  591. $fixture.append('<input type="text" id="testmask" />');
  592. $("#testmask").inputmask("decimal", { digits: 3, digitsOptional: false });
  593. $("#testmask")[0].focus();
  594. $("#testmask").Type("123.1");
  595. $("#testmask").blur();
  596. setTimeout(function () {
  597. start();
  598. equal($("#testmask").val(), "123.100", "Result " + $("#testmask").val());
  599. $("#testmask").remove();
  600. }, 0);
  601. });
  602. asyncTest("currency alias - 200000 => replace 2 to 3", function () {
  603. var $fixture = $("#qunit-fixture");
  604. $fixture.append('<input type="text" id="testmask" />');
  605. $("#testmask").inputmask("currency");
  606. $("#testmask")[0].focus();
  607. $("#testmask").click();
  608. setTimeout(function () {
  609. $("#testmask").Type("200000");
  610. $.caret($("#testmask"), 2, 3);
  611. $("#testmask").Type("3");
  612. start();
  613. equal($("#testmask").val(), "$ 300,000.00", "Result " + $("#testmask").val());
  614. $("#testmask").remove();
  615. }, 5);
  616. });
  617. asyncTest("inputmask(\"integer\") - -0 - laxmikantG", function () {
  618. var $fixture = $("#qunit-fixture");
  619. $fixture.append('<input type="text" id="testmask" />');
  620. $("#testmask").inputmask("integer", { placeholder: "0" });
  621. $("#testmask")[0].focus();
  622. $("#testmask").Type("-0");
  623. $("#testmask").blur();
  624. setTimeout(function () {
  625. start();
  626. equal($("#testmask").val(), "", "Result " + $("#testmask").val());
  627. $("#testmask").remove();
  628. }, 0);
  629. });
  630. test("inputmask(\"integer\") - 123- - laxmikantG", function () {
  631. var $fixture = $("#qunit-fixture");
  632. $fixture.append('<input type="text" id="testmask" />');
  633. $("#testmask").inputmask("integer", { placeholder: "0" });
  634. $("#testmask")[0].focus();
  635. $("#testmask").Type("123-");
  636. equal($("#testmask").val(), "-123", "Result " + $("#testmask").val());
  637. $("#testmask").remove();
  638. });
  639. test("inputmask(\"decimal\") - val(\"-5000,77\"); - ManRueda", function () {
  640. var $fixture = $("#qunit-fixture");
  641. $fixture.append('<input type="text" id="testmask" />');
  642. $("#testmask").inputmask('decimal', {
  643. integerDigits: 10,
  644. groupSeparator: '.',
  645. autoGroup: true,
  646. digits: 2,
  647. radixPoint: ',',
  648. groupSize: 3
  649. });
  650. $("#testmask").val("-5000,77");
  651. equal($("#testmask").val(), "-5.000,77", "Result " + $("#testmask").val());
  652. $("#testmask").remove();
  653. });
  654. test("inputmask(\"decimal\") - -0 - ManRueda", function () {
  655. var $fixture = $("#qunit-fixture");
  656. $fixture.append('<input type="text" id="testmask" />');
  657. $("#testmask").inputmask('decimal', {
  658. integerDigits: 10,
  659. groupSeparator: '.',
  660. autoGroup: true,
  661. digits: 2,
  662. radixPoint: ',',
  663. groupSize: 3
  664. });
  665. $("#testmask").val("-0");
  666. $("#testmask").blur();
  667. equal($("#testmask").val(), "0", "Result " + $("#testmask").val());
  668. $("#testmask").remove();
  669. });
  670. test("inputmask(\"integer\") - -5.000,77 - DrSammyD", function () {
  671. var $fixture = $("#qunit-fixture");
  672. $fixture.append('<input type="text" id="testmask" />');
  673. $("#testmask").inputmask('integer', { placeholder: "0" });
  674. $("#testmask").val("-5.000,77");
  675. $("#testmask").blur();
  676. equal($("#testmask").val(), "-5000", "Result " + $("#testmask").val());
  677. $("#testmask").remove();
  678. });
  679. asyncTest("inputmask(\"decimal\ placeholder :\"\" digitsoptional: false) - 123 - loostro", function () {
  680. var $fixture = $("body");
  681. $fixture.append('<input type="text" id="testmask" value="0,00" />');
  682. $("#testmask").inputmask("decimal", {
  683. radixPoint: ",",
  684. digits: 2,
  685. digitsOptional: false,
  686. autoGroup: true,
  687. groupSeparator: " ",
  688. groupSize: 3,
  689. allowPlus: false,
  690. allowMinus: false,
  691. });
  692. $("#testmask")[0].focus();
  693. $("#testmask").click();
  694. $.caret($("#testmask"), 0);
  695. setTimeout(function () {
  696. $("#testmask").Type("123");
  697. start();
  698. equal($("#testmask").val(), "123,00", "Result " + $("#testmask").val());
  699. $("#testmask").remove();
  700. }, 5);
  701. });
  702. asyncTest("inputmask(\"decimal\ placeholder :\"0\" digitsoptional: false) - .12 - YodaJM", function () {
  703. var $fixture = $("#qunit-fixture");
  704. $fixture.append('<input type="text" id="testmask" />');
  705. $("#testmask").inputmask('decimal', {
  706. digits: 2,
  707. placeholder: "0",
  708. digitsOptional: false
  709. });
  710. $("#testmask")[0].focus();
  711. $.caret($("#testmask"), 0, 4);
  712. setTimeout(function () {
  713. $("#testmask").Type(".12");
  714. start();
  715. equal($("#testmask").val(), "0.12", "Result " + $("#testmask").val());
  716. $("#testmask").remove();
  717. }, 0);
  718. });
  719. test("inputmask(\"decimal\") - '8100000.00' - ManRueda", function () {
  720. var $fixture = $("#qunit-fixture");
  721. $fixture.append('<input type="text" id="testmask" />');
  722. $("#testmask").inputmask('decimal', {
  723. integerDigits: 6,
  724. groupSeparator: '.',
  725. autoGroup: true,
  726. digits: 2,
  727. radixPoint: ',',
  728. groupSize: 3
  729. });
  730. $("#testmask").val("8100000.00");
  731. equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
  732. $("#testmask").remove();
  733. });
  734. test("inputmask(\"decimal\") - '12345678.12' - ManRueda", function () {
  735. var $fixture = $("#qunit-fixture");
  736. $fixture.append('<input type="text" id="testmask" />');
  737. $("#testmask").inputmask('decimal', {
  738. integerDigits: 6,
  739. groupSeparator: '.',
  740. autoGroup: true,
  741. digits: 2,
  742. radixPoint: ',',
  743. groupSize: 3
  744. });
  745. $("#testmask").val("12345678.12");
  746. equal($("#testmask").val(), "123.456,12", "Result " + $("#testmask").val());
  747. $("#testmask").remove();
  748. });
  749. test("inputmask(\"decimal\") - '8100000,00' - ManRueda", function () {
  750. var $fixture = $("#qunit-fixture");
  751. $fixture.append('<input type="text" id="testmask" />');
  752. $("#testmask").inputmask('decimal', {
  753. integerDigits: 6,
  754. groupSeparator: '.',
  755. autoGroup: true,
  756. digits: 2,
  757. radixPoint: ',',
  758. groupSize: 3
  759. });
  760. $("#testmask").val("8100000,00");
  761. equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
  762. $("#testmask").remove();
  763. });
  764. test("inputmask(\"decimal\") - 8100000.00 - ManRueda", function () {
  765. var $fixture = $("#qunit-fixture");
  766. $fixture.append('<input type="text" id="testmask" />');
  767. $("#testmask").inputmask('decimal', {
  768. integerDigits: 6,
  769. groupSeparator: '.',
  770. autoGroup: true,
  771. digits: 2,
  772. radixPoint: ',',
  773. groupSize: 3
  774. });
  775. $("#testmask").val(8100000.00);
  776. equal($("#testmask").val(), "810.000", "Result " + $("#testmask").val());
  777. $("#testmask").remove();
  778. });
  779. test("inputmask(\"decimal\") - 8100000.00 digitsoptional false - ManRueda", function () {
  780. var $fixture = $("#qunit-fixture");
  781. $fixture.append('<input type="text" id="testmask" />');
  782. $("#testmask").inputmask('decimal', {
  783. integerDigits: 6,
  784. groupSeparator: '.',
  785. autoGroup: true,
  786. digits: 2,
  787. digitsOptional: false,
  788. radixPoint: ',',
  789. groupSize: 3
  790. });
  791. $("#testmask").val(8100000.00);
  792. $("#testmask").blur();
  793. equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
  794. $("#testmask").remove();
  795. });
  796. test("inputmask(\"decimal\") - 810000.00 - ManRueda", function () {
  797. var $fixture = $("#qunit-fixture");
  798. $fixture.append('<input type="text" id="testmask" />');
  799. $("#testmask").inputmask('decimal', {
  800. integerDigits: 6,
  801. groupSeparator: '.',
  802. autoGroup: true,
  803. digits: 2,
  804. radixPoint: ',',
  805. groupSize: 3
  806. });
  807. $("#testmask").val('810000.00');
  808. equal($("#testmask").val(), "810.000,00", "Result " + $("#testmask").val());
  809. $("#testmask").remove();
  810. });
  811. test("inputmask(\"decimal\") - 123456 78 - babupca", function () {
  812. var $fixture = $("#qunit-fixture");
  813. $fixture.append('<input type="text" id="testmask" />');
  814. $("#testmask").inputmask({
  815. alias: "decimal",
  816. integerDigits: 6,
  817. digits: 3,
  818. allowMinus: false,
  819. digitsOptional: false,
  820. placeholder: "0"
  821. });
  822. $("#testmask")[0].focus();
  823. $("#testmask").Type("123456");
  824. $.caret($("#testmask"), 8);
  825. $("#testmask").Type("78");
  826. $.caret($("#testmask"), 5);
  827. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  828. equal($("#testmask").val(), "12346.078", "Result " + $("#testmask").val());
  829. $("#testmask").remove();
  830. });
  831. asyncTest("currency alias - 1234 => del 1", function () {
  832. var $fixture = $("#qunit-fixture");
  833. $fixture.append('<input type="text" id="testmask" />');
  834. $("#testmask").inputmask("currency");
  835. $("#testmask")[0].focus();
  836. $("#testmask").click();
  837. setTimeout(function () {
  838. $("#testmask").Type("1234");
  839. $.caret($("#testmask"), 3);
  840. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  841. start();
  842. equal($("#testmask").val(), "$ 234.00", "Result " + $("#testmask").val());
  843. $("#testmask").remove();
  844. }, 5);
  845. });
  846. asyncTest("currency alias - 0.02 => type 1 in integer part", function () {
  847. var $fixture = $("#qunit-fixture");
  848. $fixture.append('<input type="text" id="testmask" />');
  849. $("#testmask").inputmask("currency");
  850. $("#testmask")[0].focus();
  851. $("#testmask").click();
  852. setTimeout(function () {
  853. $("#testmask").Type("0.02");
  854. $.caret($("#testmask"), 3);
  855. $("#testmask").SendKey("1");
  856. start();
  857. equal($("#testmask").val(), "$ 1.02", "Result " + $("#testmask").val());
  858. $("#testmask").remove();
  859. }, 5);
  860. });
  861. asyncTest("currency alias - 0.02 => position before 0 type 1 in integer part", function () {
  862. var $fixture = $("#qunit-fixture");
  863. $fixture.append('<input type="text" id="testmask" />');
  864. $("#testmask").inputmask("currency");
  865. $("#testmask")[0].focus();
  866. $("#testmask").click();
  867. setTimeout(function () {
  868. $("#testmask").Type("0.02");
  869. $.caret($("#testmask"), 2);
  870. $("#testmask").SendKey("1");
  871. start();
  872. equal($("#testmask").val(), "$ 10.02", "Result " + $("#testmask").val());
  873. $("#testmask").remove();
  874. }, 5);
  875. });
  876. asyncTest("currency alias - 1.23 => del 1 in integer part", function () {
  877. var $fixture = $("#qunit-fixture");
  878. $fixture.append('<input type="text" id="testmask" />');
  879. $("#testmask").inputmask("currency");
  880. $("#testmask")[0].focus();
  881. $("#testmask").click();
  882. setTimeout(function () {
  883. $("#testmask").Type("1.23");
  884. $.caret($("#testmask"), 3);
  885. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  886. start();
  887. equal($("#testmask").val(), "$ 0.23", "Result " + $("#testmask").val());
  888. $("#testmask").remove();
  889. }, 5);
  890. });
  891. asyncTest("currency alias - 1234.56 => delete all", function () {
  892. var $fixture = $("#qunit-fixture");
  893. $fixture.append('<input type="text" id="testmask" />');
  894. $("#testmask").inputmask("currency");
  895. $("#testmask")[0].focus();
  896. $("#testmask").click();
  897. setTimeout(function () {
  898. $("#testmask").Type("1234.56");
  899. $.caret($("#testmask"), 0, 10);
  900. $("#testmask").SendKey($.inputmask.keyCode.BACKSPACE);
  901. start();
  902. equal($("#testmask")[0]._valueGet(), "$ 0.00", "Result " + $("#testmask")[0]._valueGet());
  903. $("#testmask").remove();
  904. }, 5);
  905. });
  906. asyncTest("numeric prefix='$' - paste 1234.56 - baileyjames9 & TheAndyBob", function () {
  907. var $fixture = $("#qunit-fixture");
  908. $fixture.append('<input type="text" id="testmask" />');
  909. $("#testmask").inputmask("numeric", {
  910. radixPoint: ".",
  911. groupSeparator: ",",
  912. digits: 2,
  913. autoGroup: true,
  914. prefix: '$' //No Space, this will truncate the first character
  915. });
  916. $("#testmask")[0].focus();
  917. $("#testmask").click();
  918. setTimeout(function () {
  919. $("#testmask").paste("1234.56");
  920. start();
  921. equal($("#testmask").val(), "$1,234.56", "Result " + $("#testmask").val());
  922. $("#testmask").remove();
  923. }, 5);
  924. });
  925. asyncTest("currency alias - 1234.56 => select integer press 1 - babupca", function () {
  926. var $fixture = $("#qunit-fixture");
  927. $fixture.append('<input type="text" id="testmask" />');
  928. $("#testmask").inputmask("currency");
  929. $("#testmask")[0].focus();
  930. $("#testmask").click();
  931. setTimeout(function () {
  932. $("#testmask").Type("1234.56");
  933. $.caret($("#testmask"), 0, 7);
  934. $("#testmask").SendKey("1");
  935. start();
  936. equal($("#testmask")[0]._valueGet(), "$ 1.56", "Result " + $("#testmask")[0]._valueGet());
  937. $("#testmask").remove();
  938. }, 5);
  939. });
  940. asyncTest("currency alias - 123.56 => select integer press 1 - babupca", function () {
  941. var $fixture = $("#qunit-fixture");
  942. $fixture.append('<input type="text" id="testmask" />');
  943. $("#testmask").inputmask("currency");
  944. $("#testmask")[0].focus();
  945. $("#testmask").click();
  946. setTimeout(function () {
  947. $("#testmask").Type("123.56");
  948. $.caret($("#testmask"), 0, 5);
  949. $("#testmask").SendKey("1");
  950. start();
  951. equal($("#testmask")[0]._valueGet(), "$ 1.56", "Result " + $("#testmask")[0]._valueGet());
  952. $("#testmask").remove();
  953. }, 5);
  954. });
  955. asyncTest("currency alias - 123.56 => select integer press 1 - babupca", function () {
  956. var $fixture = $("#qunit-fixture");
  957. $fixture.append('<input type="text" id="testmask" />');
  958. $("#testmask").inputmask("currency", { prefix: "$" });
  959. $("#testmask")[0].focus();
  960. $("#testmask").click();
  961. setTimeout(function () {
  962. $("#testmask").Type("123.56");
  963. $.caret($("#testmask"), 0, 4);
  964. $("#testmask").SendKey("1");
  965. start();
  966. equal($("#testmask")[0]._valueGet(), "$1.56", "Result " + $("#testmask")[0]._valueGet());
  967. $("#testmask").remove();
  968. }, 5);
  969. });