tests_numeric.js 47 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586
  1. define([
  2. "qunit",
  3. "inputmask.dependencyLib",
  4. "inputmask"
  5. ], function(qunit, $, Inputmask) {
  6. module("Numeric.Extensions");
  7. asyncTest("€ Currency precision 2", function() {
  8. var $fixture = $("#qunit-fixture");
  9. $fixture.append('<input type="text" id="testmask" />');
  10. var testmask = document.getElementById("testmask");
  11. Inputmask("numeric", {
  12. groupSeparator: ",",
  13. placeholder: "0",
  14. autoGroup: true,
  15. digits: 2,
  16. digitsOptional: false,
  17. prefix: "€ "
  18. }).mask(testmask);
  19. testmask.focus();
  20. $("#testmask").trigger("click");
  21. setTimeout(function() {
  22. start();
  23. $("#testmask").Type("1234");
  24. equal(testmask.value, "€ 1,234.00", "Result " + testmask.value);
  25. $("#testmask").remove();
  26. }, 0);
  27. });
  28. test("integer type 124 correct to 1234", function() {
  29. var $fixture = $("#qunit-fixture");
  30. $fixture.append('<input type="text" id="testmask" />');
  31. var testmask = document.getElementById("testmask");
  32. Inputmask("numeric", {
  33. groupSeparator: ",",
  34. autoGroup: true
  35. }).mask(testmask);
  36. testmask.focus();
  37. $("#testmask").Type("124");
  38. $.caret(testmask, 2);
  39. $("#testmask").Type("3");
  40. equal(testmask.value, "1,234", "Result " + testmask.value);
  41. $("#testmask").remove();
  42. });
  43. test("numeric type 00000 - Webunity", function() {
  44. var $fixture = $("#qunit-fixture");
  45. $fixture.append('<input type="text" id="testmask" />');
  46. var testmask = document.getElementById("testmask");
  47. Inputmask("numeric", {
  48. groupSeparator: ",",
  49. autoGroup: true,
  50. integerDigits: 9
  51. }).mask(testmask);
  52. testmask.focus();
  53. $("#testmask").Type("00000");
  54. equal(testmask.value, "0", "Result " + testmask.value);
  55. $("#testmask").remove();
  56. });
  57. test("numeric -placeholder 0 type 00000 - Webunity", function() {
  58. var $fixture = $("#qunit-fixture");
  59. $fixture.append('<input type="text" id="testmask" />');
  60. var testmask = document.getElementById("testmask");
  61. Inputmask("numeric", {
  62. groupSeparator: ",",
  63. autoGroup: true,
  64. placeholder: "0"
  65. }).mask(testmask)
  66. testmask.focus();
  67. $("#testmask").Type("00000");
  68. equal($("#testmask")[0].inputmask._valueGet(), "0", "Result " + testmask.value);
  69. $("#testmask").remove();
  70. });
  71. test("numeric placeholder 0 prefix € type 0.123 - Webunity", function() {
  72. var $fixture = $("#qunit-fixture");
  73. $fixture.append('<input type="text" id="testmask" />');
  74. var testmask = document.getElementById("testmask");
  75. Inputmask("numeric", {
  76. groupSeparator: ",",
  77. autoGroup: true,
  78. placeholder: "0",
  79. prefix: "€ "
  80. }).mask(testmask);
  81. testmask.focus();
  82. $("#testmask").Type("0.123");
  83. equal(testmask.value, "€ 0.123", "Result " + testmask.value);
  84. $("#testmask").remove();
  85. });
  86. test("numeric placeholder 0 prefix € type 0.123 - backspace - Webunity", function() {
  87. var $fixture = $("#qunit-fixture");
  88. $fixture.append('<input type="text" id="testmask" />');
  89. var testmask = document.getElementById("testmask");
  90. Inputmask("numeric", {
  91. groupSeparator: ",",
  92. autoGroup: true,
  93. placeholder: "0",
  94. prefix: "€ "
  95. }).mask(testmask);
  96. testmask.focus();
  97. $("#testmask").Type("0.123");
  98. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  99. equal(testmask.value, "€ 0.12", "Result " + testmask.value);
  100. $("#testmask").remove();
  101. });
  102. test("numeric placeholder 0 prefix € type 0.123 + add 1 in front - Webunity", function() {
  103. var $fixture = $("#qunit-fixture");
  104. $fixture.append('<input type="text" id="testmask" />');
  105. var testmask = document.getElementById("testmask");
  106. Inputmask("numeric", {
  107. groupSeparator: ",",
  108. autoGroup: true,
  109. placeholder: "0",
  110. prefix: "€ "
  111. }).mask(testmask);
  112. testmask.focus();
  113. $("#testmask").Type("0.123");
  114. $.caret(testmask, 2);
  115. $("#testmask").Type("1");
  116. equal(testmask.value, "€ 10.123", "Result " + testmask.value);
  117. $("#testmask").remove();
  118. });
  119. test("numeric placeholder 0 autoGroup: false prefix € type 0.123 + add 123 in front - Webunity", function() {
  120. var $fixture = $("#qunit-fixture");
  121. $fixture.append('<input type="text" id="testmask" />');
  122. var testmask = document.getElementById("testmask");
  123. Inputmask("numeric", {
  124. groupSeparator: ",",
  125. autoGroup: false,
  126. placeholder: "0",
  127. prefix: "€ "
  128. }).mask(testmask);
  129. testmask.focus();
  130. $("#testmask").Type("0.123");
  131. $.caret(testmask, 2);
  132. $("#testmask").Type("123");
  133. equal(testmask.value, "€ 1230.123", "Result " + testmask.value);
  134. $("#testmask").remove();
  135. });
  136. test("numeric placeholder 0 autoGroup: true prefix € type 0.123 + add 123 in front - Webunity", function() {
  137. var $fixture = $("#qunit-fixture");
  138. $fixture.append('<input type="text" id="testmask" />');
  139. var testmask = document.getElementById("testmask");
  140. Inputmask("numeric", {
  141. groupSeparator: ",",
  142. autoGroup: true,
  143. placeholder: "0",
  144. prefix: "€ "
  145. }).mask(testmask);
  146. testmask.focus();
  147. $("#testmask").Type("0.123");
  148. $.caret(testmask, 2);
  149. $("#testmask").Type("123");
  150. equal(testmask.value, "€ 1,230.123", "Result " + testmask.value);
  151. $("#testmask").remove();
  152. });
  153. test("integer alias with integerDigits 9 & autogroup - type 123456789 - gigermocas", function() {
  154. var $fixture = $("#qunit-fixture");
  155. $fixture.append('<input type="text" id="testmask" />');
  156. var testmask = document.getElementById("testmask");
  157. Inputmask("integer", {
  158. groupSeparator: ",",
  159. autoGroup: true,
  160. integerDigits: 9
  161. }).mask(testmask);
  162. testmask.focus();
  163. $("#testmask").Type("123456789");
  164. equal(testmask.value, "123,456,789", "Result " + testmask.value);
  165. $("#testmask").remove();
  166. });
  167. test("integer alias with integerDigits 9 & autogroup - type 1234567890123456789 - gigermocas", function() {
  168. var $fixture = $("#qunit-fixture");
  169. $fixture.append('<input type="text" id="testmask" />');
  170. var testmask = document.getElementById("testmask");
  171. Inputmask("integer", {
  172. groupSeparator: ",",
  173. autoGroup: true,
  174. integerDigits: 9
  175. }).mask(testmask);
  176. testmask.focus();
  177. $("#testmask").Type("1234567890123456789");
  178. equal(testmask.value, "123,456,789", "Result " + testmask.value);
  179. $("#testmask").remove();
  180. });
  181. test("integer alias with integerDigits 4 & autogroup - type 1234567890123456789 - gigermocas", function() {
  182. var $fixture = $("#qunit-fixture");
  183. $fixture.append('<input type="text" id="testmask" />');
  184. var testmask = document.getElementById("testmask");
  185. Inputmask("integer", {
  186. groupSeparator: ",",
  187. autoGroup: true,
  188. integerDigits: 4
  189. }).mask(testmask);
  190. testmask.focus();
  191. $("#testmask").Type("1234567890123456789");
  192. equal(testmask.value, "1,234", "Result " + testmask.value);
  193. $("#testmask").remove();
  194. });
  195. test("decimal alias with integerDigits 9 & autogroup - type 123456789 - gigermocas", function() {
  196. var $fixture = $("#qunit-fixture");
  197. $fixture.append('<input type="text" id="testmask" />');
  198. var testmask = document.getElementById("testmask");
  199. Inputmask("decimal", {
  200. groupSeparator: ",",
  201. autoGroup: true,
  202. integerDigits: 9
  203. }).mask(testmask);
  204. testmask.focus();
  205. $("#testmask").Type("123456789");
  206. equal(testmask.value, "123,456,789", "Result " + testmask.value);
  207. $("#testmask").remove();
  208. });
  209. test("decimal alias with integerDigits 4 & autogroup - type 1234 - gigermocas", function() {
  210. var $fixture = $("#qunit-fixture");
  211. $fixture.append('<input type="text" id="testmask" />');
  212. var testmask = document.getElementById("testmask");
  213. Inputmask("decimal", {
  214. groupSeparator: ",",
  215. autoGroup: true,
  216. integerDigits: 4
  217. }).mask(testmask);
  218. testmask.focus();
  219. $("#testmask").Type("1234");
  220. equal(testmask.value, "1,234", "Result " + testmask.value);
  221. $("#testmask").remove();
  222. });
  223. test("numeric alias with allowMinus:false type=text - vijjj", function() {
  224. var $fixture = $("#qunit-fixture");
  225. $fixture.append('<input type="text" id="testmask" />');
  226. var testmask = document.getElementById("testmask");
  227. Inputmask("numeric", {
  228. radixPoint: ".",
  229. integerDigits: 6,
  230. allowMinus: false
  231. }).mask(testmask);
  232. testmask.focus();
  233. $("#testmask").Type("123456");
  234. $.caret(testmask, 0);
  235. $("#testmask").SendKey("-");
  236. equal(testmask.value, "123456", "Result " + testmask.value);
  237. $("#testmask").remove();
  238. });
  239. test("numeric alias with allowMinus:false type=number - mask not applied - MartinVerges", function() {
  240. var $fixture = $("#qunit-fixture");
  241. $fixture.append('<input type="number" id="testmask" />');
  242. Inputmask("numeric", {
  243. radixPoint: ".",
  244. integerDigits: 6,
  245. allowMinus: false
  246. }).mask(testmask);
  247. testmask.focus();
  248. $("#testmask").Type("123456");
  249. $("#testmask").SendKey("-");
  250. //IE7 does not know type=number and treats as type=text
  251. ok(testmask.value == "" || testmask.value == "123456", "Result " + testmask.value);
  252. $("#testmask").remove();
  253. });
  254. test("inputmask(\"numeric\", { prefix: \"€ \" }\") - input 12345.12", function() {
  255. var $fixture = $("#qunit-fixture");
  256. $fixture.append('<input type="text" id="testmask" />');
  257. var testmask = document.getElementById("testmask");
  258. Inputmask("numeric", {
  259. prefix: "€ "
  260. }).mask(testmask);
  261. testmask.focus();
  262. $("#testmask").Type("12345.12");
  263. equal(testmask.value, "€ 12345.12", "Result " + testmask.value);
  264. $("#testmask").remove();
  265. });
  266. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123", function() {
  267. var $fixture = $("#qunit-fixture");
  268. $fixture.append('<input type="text" id="testmask" />');
  269. var testmask = document.getElementById("testmask");
  270. Inputmask("decimal", {
  271. autoGroup: true,
  272. groupSeparator: ","
  273. }).mask(testmask);
  274. testmask.focus();
  275. $("#testmask").SendKey("1");
  276. $("#testmask").SendKey("2");
  277. $("#testmask").SendKey("3");
  278. $("#testmask").SendKey("4");
  279. $("#testmask").SendKey("5");
  280. $("#testmask").SendKey(".");
  281. $("#testmask").SendKey("1");
  282. $("#testmask").SendKey("2");
  283. $("#testmask").SendKey("3");
  284. equal(testmask.value, "12,345.123", "Result " + testmask.value);
  285. $("#testmask").remove();
  286. });
  287. asyncTest("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\", decimalProtect: true }\") - input 12345.123 + remove .123", function() {
  288. var $fixture = $("#qunit-fixture");
  289. $fixture.append('<input type="text" id="testmask" />');
  290. var testmask = document.getElementById("testmask");
  291. Inputmask("decimal", {
  292. autoGroup: true,
  293. groupSeparator: ",",
  294. decimalProtect: true
  295. }).mask(testmask);
  296. testmask.focus();
  297. $("#testmask").Type("12345.123");
  298. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  299. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  300. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  301. testmask.blur();
  302. setTimeout(function() {
  303. start();
  304. equal(testmask.value, "12,345", "Result " + testmask.value);
  305. //$("#testmask").remove();
  306. }, 0);
  307. });
  308. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123 + replace .123 => .789", function() {
  309. var $fixture = $("#qunit-fixture");
  310. $fixture.append('<input type="text" id="testmask" />');
  311. var testmask = document.getElementById("testmask");
  312. Inputmask("decimal", {
  313. autoGroup: true,
  314. groupSeparator: ","
  315. }).mask(testmask);
  316. testmask.focus();
  317. $("#testmask").Type("12345.123");
  318. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  319. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  320. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  321. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  322. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  323. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  324. $("#testmask").Type(".789");
  325. equal(testmask.value, "12,345.789", "Result " + testmask.value);
  326. $("#testmask").remove();
  327. });
  328. test("inputmask(\"decimal\", { autoGroup: true, groupSeparator: \",\" }\") - input 12345.123 + replace .123 => .789", function() {
  329. var $fixture = $("#qunit-fixture");
  330. $fixture.append('<input type="text" id="testmask" />');
  331. var testmask = document.getElementById("testmask");
  332. Inputmask("decimal", {
  333. autoGroup: true,
  334. groupSeparator: ","
  335. }).mask(testmask);
  336. testmask.focus();
  337. $("#testmask").Type("12345.123");
  338. //$("#testmask").trigger("click");
  339. $.caret(testmask, 6, 10);
  340. $("#testmask").Type(".789");
  341. equal(testmask.value, "12,345.789", "Result " + testmask.value);
  342. $("#testmask").remove();
  343. });
  344. test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: true }\") - input 12345.123 + remove .123", function() {
  345. var $fixture = $("#qunit-fixture");
  346. $fixture.append('<input type="text" id="testmask" />');
  347. var testmask = document.getElementById("testmask");
  348. Inputmask("decimal", {
  349. autoGroup: false,
  350. groupSeparator: ",",
  351. decimalProtect: true
  352. }).mask(testmask);
  353. testmask.focus();
  354. $("#testmask").Type("12345.123");
  355. //$("#testmask").trigger("click");
  356. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  357. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  358. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  359. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  360. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  361. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  362. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  363. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  364. equal(testmask.value, "12345", "Result " + testmask.value);
  365. $("#testmask").remove();
  366. });
  367. test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: false }\") - input 12345.123 + remove .123", function() {
  368. var $fixture = $("#qunit-fixture");
  369. $fixture.append('<input type="text" id="testmask" />');
  370. var testmask = document.getElementById("testmask");
  371. Inputmask("decimal", {
  372. autoGroup: false,
  373. groupSeparator: ",",
  374. decimalProtect: false
  375. }).mask(testmask);
  376. testmask.focus();
  377. $("#testmask").Type("12345.123");
  378. //$("#testmask").trigger("click");
  379. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  380. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  381. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  382. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  383. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  384. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  385. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  386. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  387. equal(testmask.value, "12345", "Result " + testmask.value);
  388. $("#testmask").remove();
  389. });
  390. test("inputmask(\"decimal\", { autoGroup: false, groupSeparator: \",\", decimalProtect: true }\") - input 12345.123 + replace .123 => .789", function() {
  391. var $fixture = $("#qunit-fixture");
  392. $fixture.append('<input type="text" id="testmask" />');
  393. var testmask = document.getElementById("testmask");
  394. Inputmask("decimal", {
  395. autoGroup: false,
  396. groupSeparator: ",",
  397. decimalProtect: true
  398. }).mask(testmask);
  399. testmask.focus();
  400. $("#testmask").Type("12345.123");
  401. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  402. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  403. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  404. $("#testmask").SendKey(Inputmask.keyCode.LEFT);
  405. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  406. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  407. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  408. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  409. $("#testmask").Type(".789");
  410. equal(testmask.value, "12345.789", "Result " + testmask.value);
  411. $("#testmask").remove();
  412. });
  413. test("inputmask(\"decimal\") - maxlength 10", function() {
  414. var $fixture = $("#qunit-fixture");
  415. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  416. Inputmask("decimal").mask(testmask);
  417. testmask.focus();
  418. $("#testmask").Type("123456789012345");
  419. equal(testmask.value, "1234567890", "Result " + testmask.value);
  420. $("#testmask").remove();
  421. });
  422. test("inputmask(\"decimal, { repeat: 15 }\") - maxlength 10", function() {
  423. var $fixture = $("#qunit-fixture");
  424. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  425. Inputmask("decimal", {
  426. repeat: 15
  427. }).mask(testmask);
  428. testmask.focus();
  429. $("#testmask").Type("123456789012345");
  430. equal(testmask.value, "1234567890", "Result " + testmask.value);
  431. $("#testmask").remove();
  432. });
  433. test("inputmask(\"decimal, { repeat: 5, decimalProtect: true }\") - maxlength 10", function() {
  434. var $fixture = $("#qunit-fixture");
  435. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  436. Inputmask("decimal", {
  437. repeat: 5,
  438. decimalProtect: true
  439. }).mask(testmask);
  440. testmask.focus();
  441. $("#testmask").Type("123456789012345");
  442. equal(testmask.value, "12345", "Result " + testmask.value);
  443. $("#testmask").remove();
  444. });
  445. test("inputmask(\"decimal, { repeat: 5, decimalProtect: false }\") - maxlength 10", function() {
  446. var $fixture = $("#qunit-fixture");
  447. $fixture.append('<input type="text" id="testmask" maxlength="10" />');
  448. Inputmask("decimal", {
  449. repeat: 5,
  450. decimalProtect: false
  451. }).mask(testmask);
  452. testmask.focus();
  453. $("#testmask").Type("123456789012345");
  454. equal(testmask.value, "12345.6789", "Result " + testmask.value);
  455. $("#testmask").remove();
  456. });
  457. test("inputmask(\"decimal\")", function() {
  458. var $fixture = $("#qunit-fixture");
  459. $fixture.append('<input type="text" id="testmask" />');
  460. var testmask = document.getElementById("testmask");
  461. Inputmask("decimal").mask(testmask);
  462. testmask.focus();
  463. $("#testmask").Type("1234567890");
  464. $.caret(testmask, 0, 10);
  465. $("#testmask").Type("12345");
  466. equal(testmask.value, "12345", "Result " + testmask.value);
  467. $("#testmask").remove();
  468. });
  469. test("inputmask(\"decimal\") - value=\"1234567890\"", function() {
  470. var $fixture = $("#qunit-fixture");
  471. $fixture.append('<input type="text" id="testmask" value="1234567890" />');
  472. Inputmask("decimal").mask(testmask);
  473. testmask.focus();
  474. $.caret(testmask, 0, 10);
  475. $("#testmask").Type("12345");
  476. equal(testmask.value, "12345", "Result " + testmask.value);
  477. $("#testmask").remove();
  478. });
  479. test("inputmask(\"decimal\")", function() {
  480. var $fixture = $("#qunit-fixture");
  481. $fixture.append('<input type="text" id="testmask" />');
  482. var testmask = document.getElementById("testmask");
  483. Inputmask("decimal").mask(testmask);
  484. testmask.focus();
  485. $("#testmask").Type("1234567890");
  486. $.caret(testmask, 3, 5);
  487. $("#testmask").SendKey("0");
  488. equal(testmask.value, "123067890", "Result " + testmask.value);
  489. $("#testmask").remove();
  490. });
  491. test("inputmask(\"decimal\") - value=\"1234567890\"", function() {
  492. var $fixture = $("#qunit-fixture");
  493. $fixture.append('<input type="text" id="testmask" value="1234567890" />');
  494. Inputmask("decimal").mask(testmask);
  495. testmask.focus();
  496. $.caret(testmask, 3, 5);
  497. $("#testmask").SendKey("0");
  498. equal(testmask.value, "123067890", "Result " + testmask.value);
  499. $("#testmask").remove();
  500. });
  501. test("inputmask(\"decimal\") - value=\"123.45\" Replace last integer", function() {
  502. var $fixture = $("#qunit-fixture");
  503. $fixture.append('<input type="text" id="testmask" />');
  504. var testmask = document.getElementById("testmask");
  505. Inputmask("decimal", {
  506. digits: 2
  507. }).mask(testmask);
  508. testmask.focus();
  509. $("#testmask").Type("123.45");
  510. $.caret(testmask, 2, 3);
  511. $("#testmask").SendKey("7");
  512. equal(testmask.value, "127.45", "Result " + testmask.value);
  513. $("#testmask").remove();
  514. });
  515. test("inputmask(\"decimal\", { digits: 2 }) - value=\"123\" - RomeroMsk", function() {
  516. var $fixture = $("#qunit-fixture");
  517. $fixture.append('<input type="text" id="testmask" />');
  518. var testmask = document.getElementById("testmask");
  519. Inputmask("decimal", {
  520. digits: 2
  521. }).mask(testmask);
  522. testmask.focus();
  523. $("#testmask").Type("123");
  524. $.caret(testmask, 0, 3);
  525. $("#testmask").SendKey(",,..");
  526. $("#testmask").Type("45");
  527. equal(testmask.value, "0.45", "Result " + testmask.value);
  528. $("#testmask").remove();
  529. });
  530. test("inputmask - Multiple inputs masked, Integer mask doesn't allow typing - #402 - albatrocity", function() {
  531. var $fixture = $("#qunit-fixture");
  532. $fixture.append('<input type="text" id="testmask" />');
  533. var testmask = document.getElementById("testmask");
  534. $fixture.append('<input type="text" id="testmask2" />');
  535. var testmask2 = document.getElementById("testmask2");
  536. Inputmask("integer", {
  537. autoGroup: true,
  538. groupSeparator: ",",
  539. groupSize: 3
  540. }).mask(testmask);
  541. Inputmask("(999)-999-9999").mask(testmask2);
  542. testmask.focus();
  543. $("#testmask").Type("12345");
  544. equal(testmask.value, "12,345", "Result " + testmask.value);
  545. $("#testmask").remove();
  546. $("#testmask2").remove();
  547. });
  548. test("decimal alias with groupseparator delete - YoussefTaghlabi", function() {
  549. var $fixture = $("#qunit-fixture");
  550. $fixture.append('<input type="text" id="testmask" />');
  551. var testmask = document.getElementById("testmask");
  552. Inputmask("decimal", {
  553. radixPoint: ".",
  554. groupSeparator: ",",
  555. groupSize: 3,
  556. digits: 2,
  557. autoGroup: true,
  558. allowPlus: false,
  559. allowMinus: true
  560. }).mask(testmask);
  561. testmask.focus();
  562. $("#testmask").Type("1234567");
  563. $.caret(testmask, 0);
  564. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  565. equal(testmask.value, "234,567", "Result " + testmask.value);
  566. $("#testmask").remove();
  567. });
  568. test("decimal alias with groupseparator backspace - YoussefTaghlabi", function() {
  569. var $fixture = $("#qunit-fixture");
  570. $fixture.append('<input type="text" id="testmask" />');
  571. var testmask = document.getElementById("testmask");
  572. Inputmask("decimal", {
  573. radixPoint: ".",
  574. groupSeparator: ",",
  575. groupSize: 3,
  576. digits: 2,
  577. autoGroup: true,
  578. allowPlus: false,
  579. allowMinus: true
  580. }).mask(testmask);
  581. testmask.focus();
  582. $("#testmask").Type("1234567");
  583. $.caret(testmask, 1);
  584. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  585. equal(testmask.value, "234,567", "Result " + testmask.value);
  586. $("#testmask").remove();
  587. });
  588. test("decimal alias with plus or minus & autogroup - type -123456 - YoussefTaghlabi", function() {
  589. var $fixture = $("#qunit-fixture");
  590. $fixture.append('<input type="text" id="testmask" />');
  591. var testmask = document.getElementById("testmask");
  592. Inputmask("decimal", {
  593. radixPoint: ".",
  594. groupSeparator: ",",
  595. groupSize: 3,
  596. digits: 2,
  597. autoGroup: true,
  598. allowPlus: true,
  599. allowMinus: true
  600. }).mask(testmask);
  601. testmask.focus();
  602. $("#testmask").Type("-123456");
  603. equal(testmask.value, "-123,456", "Result " + testmask.value);
  604. $("#testmask").remove();
  605. });
  606. test("decimal alias with plus or minus & autogroup - type 123465 - - YoussefTaghlabi", function() {
  607. var $fixture = $("#qunit-fixture");
  608. $fixture.append('<input type="text" id="testmask" />');
  609. var testmask = document.getElementById("testmask");
  610. Inputmask("decimal", {
  611. radixPoint: ".",
  612. groupSeparator: ",",
  613. groupSize: 3,
  614. digits: 2,
  615. autoGroup: true,
  616. allowPlus: true,
  617. allowMinus: true
  618. }).mask(testmask);
  619. testmask.focus();
  620. $("#testmask").Type("123456");
  621. $.caret(testmask, 0);
  622. $("#testmask").SendKey("-");
  623. equal(testmask.value, "-123,456", "Result " + testmask.value);
  624. $("#testmask").remove();
  625. });
  626. test("decimal alias with plus or minus & autogroup", function() {
  627. var $fixture = $("#qunit-fixture");
  628. $fixture.append('<input type="text" id="testmask" />');
  629. var testmask = document.getElementById("testmask");
  630. Inputmask("decimal", {
  631. radixPoint: ".",
  632. groupSeparator: ",",
  633. groupSize: 3,
  634. digits: 2,
  635. autoGroup: true,
  636. allowPlus: true,
  637. allowMinus: true
  638. }).mask(testmask);
  639. testmask.focus();
  640. $("#testmask").Type("1234.56");
  641. equal(testmask.value, "1,234.56", "Result " + testmask.value);
  642. $("#testmask").remove();
  643. });
  644. test("decimal alias set value with val() - kochelmonster", function() {
  645. var $fixture = $("#qunit-fixture");
  646. $fixture.append('<input type="text" id="testmask" />');
  647. var testmask = document.getElementById("testmask");
  648. Inputmask("decimal", {
  649. radixPoint: ",",
  650. groupSeparator: ".",
  651. digits: 2,
  652. autoGroup: true,
  653. suffix: ' €'
  654. }).mask(testmask);
  655. $("#testmask").val("39.399.392,22 €");
  656. equal(testmask.value, "39.399.392,22 €", "Result " + testmask.value);
  657. $("#testmask").remove();
  658. });
  659. asyncTest("inputmask(\"decimal\") - value=\"123.1\" blur digitsoptional", function() {
  660. var $fixture = $("#qunit-fixture");
  661. $fixture.append('<input type="text" id="testmask" />');
  662. var testmask = document.getElementById("testmask");
  663. Inputmask("decimal", {
  664. digits: 3
  665. }).mask(testmask);
  666. testmask.focus();
  667. $("#testmask").Type("123.1");
  668. testmask.blur();
  669. setTimeout(function() {
  670. start();
  671. equal(testmask.value, "123.1", "Result " + testmask.value);
  672. $("#testmask").remove();
  673. }, 0);
  674. });
  675. asyncTest("inputmask(\"decimal\") - value=\"123.1\" blur", function() {
  676. var $fixture = $("#qunit-fixture");
  677. $fixture.append('<input type="text" id="testmask" />');
  678. var testmask = document.getElementById("testmask");
  679. Inputmask("decimal", {
  680. digits: 3,
  681. digitsOptional: false
  682. }).mask(testmask);
  683. testmask.focus();
  684. $("#testmask").Type("123.1");
  685. testmask.blur();
  686. setTimeout(function() {
  687. start();
  688. equal(testmask.value, "123.100", "Result " + testmask.value);
  689. $("#testmask").remove();
  690. }, 0);
  691. });
  692. asyncTest("currency alias - 200000 => replace 2 to 3", function() {
  693. var $fixture = $("#qunit-fixture");
  694. $fixture.append('<input type="text" id="testmask" />');
  695. var testmask = document.getElementById("testmask");
  696. Inputmask("currency").mask(testmask);
  697. testmask.focus();
  698. $("#testmask").trigger("click");
  699. setTimeout(function() {
  700. $("#testmask").Type("200000");
  701. $.caret(testmask, 2, 3);
  702. $("#testmask").Type("3");
  703. start();
  704. equal(testmask.value, "$ 300,000.00", "Result " + testmask.value);
  705. $("#testmask").remove();
  706. }, 5);
  707. });
  708. asyncTest("inputmask(\"integer\") - -0 - laxmikantG", function() {
  709. var $fixture = $("#qunit-fixture");
  710. $fixture.append('<input type="text" id="testmask" />');
  711. var testmask = document.getElementById("testmask");
  712. Inputmask("integer", {
  713. placeholder: "0"
  714. }).mask(testmask);
  715. testmask.focus();
  716. $("#testmask").Type("-0");
  717. testmask.blur();
  718. setTimeout(function() {
  719. start();
  720. equal(testmask.value, "", "Result " + testmask.value);
  721. $("#testmask").remove();
  722. }, 0);
  723. });
  724. test("inputmask(\"integer\") - 123- - laxmikantG", function() {
  725. var $fixture = $("#qunit-fixture");
  726. $fixture.append('<input type="text" id="testmask" />');
  727. var testmask = document.getElementById("testmask");
  728. Inputmask("integer", {
  729. placeholder: "0"
  730. }).mask(testmask);
  731. testmask.focus();
  732. $("#testmask").Type("123-");
  733. equal(testmask.value, "-123", "Result " + testmask.value);
  734. $("#testmask").remove();
  735. });
  736. test("inputmask(\"decimal\") - val(\"-5000,77\"); - ManRueda", function() {
  737. var $fixture = $("#qunit-fixture");
  738. $fixture.append('<input type="text" id="testmask" />');
  739. var testmask = document.getElementById("testmask");
  740. Inputmask('decimal', {
  741. integerDigits: 10,
  742. groupSeparator: '.',
  743. autoGroup: true,
  744. digits: 2,
  745. radixPoint: ',',
  746. groupSize: 3
  747. }).mask(testmask);
  748. $("#testmask").val("-5000,77");
  749. equal(testmask.value, "-5.000,77", "Result " + testmask.value);
  750. $("#testmask").remove();
  751. });
  752. test("inputmask(\"decimal\") - -0 - ManRueda", function() {
  753. var $fixture = $("#qunit-fixture");
  754. $fixture.append('<input type="text" id="testmask" />');
  755. var testmask = document.getElementById("testmask");
  756. Inputmask('decimal', {
  757. integerDigits: 10,
  758. groupSeparator: '.',
  759. autoGroup: true,
  760. digits: 2,
  761. radixPoint: ',',
  762. groupSize: 3
  763. }).mask(testmask);
  764. $("#testmask").val("-0");
  765. testmask.blur();
  766. equal(testmask.value, "0", "Result " + testmask.value);
  767. $("#testmask").remove();
  768. });
  769. test("inputmask(\"integer\") - -5.000,77 - DrSammyD", function() {
  770. var $fixture = $("#qunit-fixture");
  771. $fixture.append('<input type="text" id="testmask" />');
  772. var testmask = document.getElementById("testmask");
  773. Inputmask('integer', {
  774. placeholder: "0"
  775. }).mask(testmask);
  776. $("#testmask").val("-5.000,77");
  777. testmask.blur();
  778. equal(testmask.value, "-5000", "Result " + testmask.value);
  779. $("#testmask").remove();
  780. });
  781. asyncTest("inputmask(\"decimal\ placeholder :\"\" digitsoptional: false) - 123 - loostro", function() {
  782. var $fixture = $("#qunit-fixture");
  783. $fixture.append('<input type="text" id="testmask" value="0,00" />');
  784. Inputmask("decimal", {
  785. radixPoint: ",",
  786. digits: 2,
  787. digitsOptional: false,
  788. autoGroup: true,
  789. groupSeparator: " ",
  790. groupSize: 3,
  791. allowPlus: false,
  792. allowMinus: false,
  793. }).mask(testmask);
  794. testmask.focus();
  795. $("#testmask").trigger("click");
  796. $.caret(testmask, 0);
  797. setTimeout(function() {
  798. $("#testmask").Type("123");
  799. start();
  800. equal(testmask.value, "123,00", "Result " + testmask.value);
  801. $("#testmask").remove();
  802. }, 5);
  803. });
  804. asyncTest("inputmask(\"decimal\ placeholder :\"0\" digitsoptional: false) - .12 - YodaJM", function() {
  805. var $fixture = $("#qunit-fixture");
  806. $fixture.append('<input type="text" id="testmask" />');
  807. var testmask = document.getElementById("testmask");
  808. Inputmask('decimal', {
  809. digits: 2,
  810. placeholder: "0",
  811. digitsOptional: false
  812. }).mask(testmask);
  813. testmask.focus();
  814. $.caret(testmask, 0, 4);
  815. setTimeout(function() {
  816. $("#testmask").Type(".12");
  817. start();
  818. equal(testmask.value, "0.12", "Result " + testmask.value);
  819. $("#testmask").remove();
  820. }, 0);
  821. });
  822. test("inputmask(\"decimal\") - '8100000.00' - ManRueda", function() {
  823. var $fixture = $("#qunit-fixture");
  824. $fixture.append('<input type="text" id="testmask" />');
  825. var testmask = document.getElementById("testmask");
  826. Inputmask('decimal', {
  827. integerDigits: 6,
  828. groupSeparator: '.',
  829. autoGroup: true,
  830. digits: 2,
  831. radixPoint: ',',
  832. groupSize: 3
  833. }).mask(testmask);
  834. $("#testmask").val("8100000.00");
  835. equal(testmask.value, "810.000,00", "Result " + testmask.value);
  836. $("#testmask").remove();
  837. });
  838. test("inputmask(\"decimal\") - '12345678.12' - ManRueda", function() {
  839. var $fixture = $("#qunit-fixture");
  840. $fixture.append('<input type="text" id="testmask" />');
  841. var testmask = document.getElementById("testmask");
  842. Inputmask('decimal', {
  843. integerDigits: 6,
  844. groupSeparator: '.',
  845. autoGroup: true,
  846. digits: 2,
  847. radixPoint: ',',
  848. groupSize: 3
  849. }).mask(testmask);
  850. $("#testmask").val("12345678.12");
  851. equal(testmask.value, "123.456,12", "Result " + testmask.value);
  852. $("#testmask").remove();
  853. });
  854. test("inputmask(\"decimal\") - '8100000,00' - ManRueda", function() {
  855. var $fixture = $("#qunit-fixture");
  856. $fixture.append('<input type="text" id="testmask" />');
  857. var testmask = document.getElementById("testmask");
  858. Inputmask('decimal', {
  859. integerDigits: 6,
  860. groupSeparator: '.',
  861. autoGroup: true,
  862. digits: 2,
  863. radixPoint: ',',
  864. groupSize: 3
  865. }).mask(testmask);
  866. $("#testmask").val("8100000,00");
  867. equal(testmask.value, "810.000,00", "Result " + testmask.value);
  868. $("#testmask").remove();
  869. });
  870. test("inputmask(\"decimal\") - 8100000.00 - ManRueda", function() {
  871. var $fixture = $("#qunit-fixture");
  872. $fixture.append('<input type="text" id="testmask" />');
  873. var testmask = document.getElementById("testmask");
  874. Inputmask('decimal', {
  875. integerDigits: 6,
  876. groupSeparator: '.',
  877. autoGroup: true,
  878. digits: 2,
  879. radixPoint: ',',
  880. groupSize: 3
  881. }).mask(testmask);
  882. $("#testmask").val(8100000.00);
  883. equal(testmask.value, "810.000", "Result " + testmask.value);
  884. $("#testmask").remove();
  885. });
  886. test("inputmask(\"decimal\") - 8100000.00 digitsoptional false - ManRueda", function() {
  887. var $fixture = $("#qunit-fixture");
  888. $fixture.append('<input type="text" id="testmask" />');
  889. var testmask = document.getElementById("testmask");
  890. Inputmask('decimal', {
  891. integerDigits: 6,
  892. groupSeparator: '.',
  893. autoGroup: true,
  894. digits: 2,
  895. digitsOptional: false,
  896. radixPoint: ',',
  897. groupSize: 3
  898. }).mask(testmask);
  899. $("#testmask").val(8100000.00);
  900. testmask.blur();
  901. equal(testmask.value, "810.000,00", "Result " + testmask.value);
  902. $("#testmask").remove();
  903. });
  904. test("inputmask(\"decimal\") - 810000.00 - ManRueda", function() {
  905. var $fixture = $("#qunit-fixture");
  906. $fixture.append('<input type="text" id="testmask" />');
  907. var testmask = document.getElementById("testmask");
  908. Inputmask('decimal', {
  909. integerDigits: 6,
  910. groupSeparator: '.',
  911. autoGroup: true,
  912. digits: 2,
  913. radixPoint: ',',
  914. groupSize: 3
  915. }).mask(testmask);
  916. $("#testmask").val('810000.00');
  917. equal(testmask.value, "810.000,00", "Result " + testmask.value);
  918. $("#testmask").remove();
  919. });
  920. asyncTest("inputmask(\"decimal\") - 123456 78 - babupca", function() {
  921. var $fixture = $("#qunit-fixture");
  922. $fixture.append('<input type="text" id="testmask" />');
  923. var testmask = document.getElementById("testmask");
  924. Inputmask({
  925. alias: "decimal",
  926. integerDigits: 6,
  927. digits: 3,
  928. allowMinus: false,
  929. digitsOptional: false,
  930. placeholder: "0"
  931. }).mask(testmask);
  932. testmask.focus();
  933. $("#testmask").trigger("click");
  934. setTimeout(function() {
  935. start();
  936. $("#testmask").Type("123456");
  937. $.caret(testmask, 8);
  938. $("#testmask").Type("78");
  939. $.caret(testmask, 5);
  940. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  941. equal(testmask.value, "12346.078", "Result " + testmask.value);
  942. $("#testmask").remove();
  943. }, 0);
  944. });
  945. asyncTest("currency alias - 1234 => del 1", function() {
  946. var $fixture = $("#qunit-fixture");
  947. $fixture.append('<input type="text" id="testmask" />');
  948. var testmask = document.getElementById("testmask");
  949. Inputmask("currency").mask(testmask);
  950. testmask.focus();
  951. $("#testmask").trigger("click");
  952. setTimeout(function() {
  953. $("#testmask").Type("1234");
  954. $.caret(testmask, 3);
  955. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  956. start();
  957. equal(testmask.value, "$ 234.00", "Result " + testmask.value);
  958. $("#testmask").remove();
  959. }, 5);
  960. });
  961. asyncTest("currency alias - 0.02 => type 1 in integer part", function() {
  962. var $fixture = $("#qunit-fixture");
  963. $fixture.append('<input type="text" id="testmask" />');
  964. var testmask = document.getElementById("testmask");
  965. Inputmask("currency").mask(testmask);
  966. testmask.focus();
  967. $("#testmask").trigger("click");
  968. setTimeout(function() {
  969. $("#testmask").Type("0.02");
  970. $.caret(testmask, 3);
  971. $("#testmask").SendKey("1");
  972. start();
  973. equal(testmask.value, "$ 1.02", "Result " + testmask.value);
  974. $("#testmask").remove();
  975. }, 5);
  976. });
  977. asyncTest("currency alias - 0.02 => position before 0 type 1 in integer part", function() {
  978. var $fixture = $("#qunit-fixture");
  979. $fixture.append('<input type="text" id="testmask" />');
  980. var testmask = document.getElementById("testmask");
  981. Inputmask("currency").mask(testmask);
  982. testmask.focus();
  983. $("#testmask").trigger("click");
  984. setTimeout(function() {
  985. $("#testmask").Type("0.02");
  986. $.caret(testmask, 2);
  987. $("#testmask").SendKey("1");
  988. start();
  989. equal(testmask.value, "$ 10.02", "Result " + testmask.value);
  990. $("#testmask").remove();
  991. }, 5);
  992. });
  993. asyncTest("currency alias - 1.23 => del 1 in integer part", function() {
  994. var $fixture = $("#qunit-fixture");
  995. $fixture.append('<input type="text" id="testmask" />');
  996. var testmask = document.getElementById("testmask");
  997. Inputmask("currency").mask(testmask);
  998. testmask.focus();
  999. $("#testmask").trigger("click");
  1000. setTimeout(function() {
  1001. $("#testmask").Type("1.23");
  1002. $.caret(testmask, 3);
  1003. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  1004. start();
  1005. equal(testmask.value, "$ 0.23", "Result " + testmask.value);
  1006. $("#testmask").remove();
  1007. }, 5);
  1008. });
  1009. asyncTest("currency alias - 1234.56 => delete all", function() {
  1010. var $fixture = $("#qunit-fixture");
  1011. $fixture.append('<input type="text" id="testmask" />');
  1012. var testmask = document.getElementById("testmask");
  1013. Inputmask("currency").mask(testmask);
  1014. testmask.focus();
  1015. $("#testmask").trigger("click");
  1016. setTimeout(function() {
  1017. $("#testmask").Type("1234.56");
  1018. $.caret(testmask, 0, 10);
  1019. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  1020. start();
  1021. equal($("#testmask")[0].inputmask._valueGet(), "$ 0.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1022. $("#testmask").remove();
  1023. }, 5);
  1024. });
  1025. asyncTest("numeric prefix='$' - paste 1234.56 - baileyjames9 & TheAndyBob", function() {
  1026. var $fixture = $("#qunit-fixture");
  1027. $fixture.append('<input type="text" id="testmask" />');
  1028. var testmask = document.getElementById("testmask");
  1029. Inputmask("numeric", {
  1030. radixPoint: ".",
  1031. groupSeparator: ",",
  1032. digits: 2,
  1033. autoGroup: true,
  1034. prefix: '$' //No Space, this will truncate the first character
  1035. }).mask(testmask);
  1036. testmask.focus();
  1037. $("#testmask").trigger("click");
  1038. setTimeout(function() {
  1039. $("#testmask").paste("1234.56");
  1040. start();
  1041. equal(testmask.value, "$1,234.56", "Result " + testmask.value);
  1042. $("#testmask").remove();
  1043. }, 5);
  1044. });
  1045. asyncTest("currency alias - 1234.56 => select integer press 1 - babupca", function() {
  1046. var $fixture = $("#qunit-fixture");
  1047. $fixture.append('<input type="text" id="testmask" />');
  1048. var testmask = document.getElementById("testmask");
  1049. Inputmask("currency").mask(testmask);
  1050. testmask.focus();
  1051. $("#testmask").trigger("click");
  1052. setTimeout(function() {
  1053. $("#testmask").Type("1234.56");
  1054. $.caret(testmask, 0, 7);
  1055. $("#testmask").SendKey("1");
  1056. start();
  1057. equal($("#testmask")[0].inputmask._valueGet(), "$ 1.56", "Result " + $("#testmask")[0].inputmask._valueGet());
  1058. $("#testmask").remove();
  1059. }, 5);
  1060. });
  1061. asyncTest("currency alias - 123.56 => select integer press 1 - babupca", function() {
  1062. var $fixture = $("#qunit-fixture");
  1063. $fixture.append('<input type="text" id="testmask" />');
  1064. var testmask = document.getElementById("testmask");
  1065. Inputmask("currency").mask(testmask);
  1066. testmask.focus();
  1067. $("#testmask").trigger("click");
  1068. setTimeout(function() {
  1069. $("#testmask").Type("123.56");
  1070. $.caret(testmask, 0, 5);
  1071. $("#testmask").SendKey("1");
  1072. start();
  1073. equal($("#testmask")[0].inputmask._valueGet(), "$ 1.56", "Result " + $("#testmask")[0].inputmask._valueGet());
  1074. $("#testmask").remove();
  1075. }, 5);
  1076. });
  1077. asyncTest("currency alias - 123.56 => select integer press 1 - babupca", function() {
  1078. var $fixture = $("#qunit-fixture");
  1079. $fixture.append('<input type="text" id="testmask" />');
  1080. var testmask = document.getElementById("testmask");
  1081. Inputmask("currency", {
  1082. prefix: "$"
  1083. }).mask(testmask);
  1084. testmask.focus();
  1085. $("#testmask").trigger("click");
  1086. setTimeout(function() {
  1087. $("#testmask").Type("123.56");
  1088. $.caret(testmask, 0, 4);
  1089. $("#testmask").SendKey("1");
  1090. start();
  1091. equal($("#testmask")[0].inputmask._valueGet(), "$1.56", "Result " + $("#testmask")[0].inputmask._valueGet());
  1092. $("#testmask").remove();
  1093. }, 5);
  1094. });
  1095. asyncTest("currency alias - min 1000", function() {
  1096. var $fixture = $("#qunit-fixture");
  1097. $fixture.append('<input type="text" id="testmask" />');
  1098. var testmask = document.getElementById("testmask");
  1099. Inputmask("currency", {
  1100. min: 1000
  1101. }).mask(testmask);
  1102. testmask.focus();
  1103. testmask.blur();
  1104. setTimeout(function() {
  1105. start();
  1106. equal($("#testmask")[0].inputmask._valueGet(), "$ 1,000.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1107. $("#testmask").remove();
  1108. }, 5);
  1109. });
  1110. asyncTest("currency alias - max 1000 - type 1234", function() {
  1111. var $fixture = $("#qunit-fixture");
  1112. $fixture.append('<input type="text" id="testmask" />');
  1113. var testmask = document.getElementById("testmask");
  1114. Inputmask("currency", {
  1115. max: 1000
  1116. }).mask(testmask);
  1117. testmask.focus();
  1118. $("#testmask").trigger("click");
  1119. setTimeout(function() {
  1120. $("#testmask").Type("1234");
  1121. start();
  1122. equal($("#testmask")[0].inputmask._valueGet(), "$ 123.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1123. $("#testmask").remove();
  1124. }, 5);
  1125. });
  1126. test("currency alias - type 1010 delete first 1 - FilipeZhou", function() {
  1127. var $fixture = $("#qunit-fixture");
  1128. $fixture.append('<input type="text" id="testmask" />');
  1129. var testmask = document.getElementById("testmask");
  1130. Inputmask("currency").mask(testmask);
  1131. testmask.focus();
  1132. $("#testmask").trigger("click");
  1133. $("#testmask").Type("1010");
  1134. $.caret(testmask, 3);
  1135. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  1136. equal($("#testmask")[0].inputmask._valueGet(), "$ 10.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1137. $("#testmask").remove();
  1138. });
  1139. test("currency alias - type 1010 delete middle 1 - FilipeZhou", function() {
  1140. var $fixture = $("#qunit-fixture");
  1141. $fixture.append('<input type="text" id="testmask" />');
  1142. var testmask = document.getElementById("testmask");
  1143. Inputmask("currency").mask(testmask);
  1144. testmask.focus();
  1145. $("#testmask").trigger("click");
  1146. $("#testmask").Type("1010");
  1147. $.caret(testmask, 6);
  1148. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  1149. equal($("#testmask")[0].inputmask._valueGet(), "$ 100.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1150. $("#testmask").remove();
  1151. });
  1152. test("currency alias - type -1234 delete -", function() {
  1153. var $fixture = $("#qunit-fixture");
  1154. $fixture.append('<input type="text" id="testmask" />');
  1155. var testmask = document.getElementById("testmask");
  1156. Inputmask("currency").mask(testmask);
  1157. testmask.focus();
  1158. $("#testmask").trigger("click");
  1159. $("#testmask").Type("-1234");
  1160. $.caret(testmask, 0);
  1161. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  1162. equal($("#testmask")[0].inputmask._valueGet(), "$ 1,234.00", "Result " + $("#testmask")[0].inputmask._valueGet());
  1163. $("#testmask").remove();
  1164. });
  1165. test("decimal alias - type 12345.12 add 6 in front - freeze - DatXN", function() {
  1166. var $fixture = $("#qunit-fixture");
  1167. $fixture.append('<input type="text" id="testmask" />');
  1168. var testmask = document.getElementById("testmask");
  1169. Inputmask("decimal", {
  1170. integerDigits: 5,
  1171. digits: 2,
  1172. allowMinus: false,
  1173. allowPlus: false
  1174. }).mask(testmask);
  1175. testmask.focus();
  1176. $("#testmask").trigger("click");
  1177. $("#testmask").Type("12345.12");
  1178. $.caret(testmask, 0);
  1179. $("#testmask").SendKey("6");
  1180. equal($("#testmask")[0].inputmask._valueGet(), "12345.12", "Result " + $("#testmask")[0].inputmask._valueGet());
  1181. $("#testmask").remove();
  1182. });
  1183. test("decimal alias - type 123456789 - add , before 8 - jpontet", function() {
  1184. var $fixture = $("#qunit-fixture");
  1185. $fixture.append('<input type="text" id="testmask" />');
  1186. var testmask = document.getElementById("testmask");
  1187. Inputmask("decimal", {
  1188. allowMinus: true,
  1189. integerDigits: 12,
  1190. digits: 2,
  1191. radixPoint: ",",
  1192. autoGroup: true,
  1193. groupSeparator: " ",
  1194. groupSize: 3,
  1195. rightAlign: false
  1196. }).mask(testmask);
  1197. testmask.focus();
  1198. $("#testmask").trigger("click");
  1199. $("#testmask").Type("123456789");
  1200. $.caret(testmask, 9);
  1201. $("#testmask").SendKey(",");
  1202. equal($("#testmask")[0].inputmask._valueGet(), "1 234 567,89", "Result " + $("#testmask")[0].inputmask._valueGet());
  1203. $("#testmask").remove();
  1204. });
  1205. test("decimal alias - type 123456789 - add , before 8 - backspace - jpontet", function() {
  1206. var $fixture = $("#qunit-fixture");
  1207. $fixture.append('<input type="text" id="testmask" />');
  1208. var testmask = document.getElementById("testmask");
  1209. Inputmask("decimal", {
  1210. allowMinus: true,
  1211. integerDigits: 12,
  1212. digits: 2,
  1213. radixPoint: ",",
  1214. autoGroup: true,
  1215. groupSeparator: " ",
  1216. groupSize: 3,
  1217. rightAlign: false
  1218. }).mask(testmask);
  1219. testmask.focus();
  1220. $("#testmask").trigger("click");
  1221. $("#testmask").Type("123456789");
  1222. $.caret(testmask, 9);
  1223. $("#testmask").SendKey(",");
  1224. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  1225. equal($("#testmask")[0].inputmask._valueGet(), "123 456,89", "Result " + $("#testmask")[0].inputmask._valueGet());
  1226. $("#testmask").remove();
  1227. });
  1228. test("decimal alias - type 1234567890 - add , before 9 - jpontet", function() {
  1229. var $fixture = $("#qunit-fixture");
  1230. $fixture.append('<input type="text" id="testmask" />');
  1231. var testmask = document.getElementById("testmask");
  1232. Inputmask("decimal", {
  1233. allowMinus: true,
  1234. integerDigits: 12,
  1235. digits: 2,
  1236. radixPoint: ",",
  1237. autoGroup: true,
  1238. groupSeparator: " ",
  1239. groupSize: 3,
  1240. rightAlign: false
  1241. }).mask(testmask);
  1242. testmask.focus();
  1243. $("#testmask").trigger("click");
  1244. $("#testmask").Type("1234567890");
  1245. $.caret(testmask, 11);
  1246. $("#testmask").SendKey(",");
  1247. equal($("#testmask")[0].inputmask._valueGet(), "12 345 678,90", "Result " + $("#testmask")[0].inputmask._valueGet());
  1248. $("#testmask").remove();
  1249. });
  1250. test("decimal alias - type 1234567890 - add , before 9 - backspace - jpontet", function() {
  1251. var $fixture = $("#qunit-fixture");
  1252. $fixture.append('<input type="text" id="testmask" />');
  1253. var testmask = document.getElementById("testmask");
  1254. Inputmask("decimal", {
  1255. allowMinus: true,
  1256. integerDigits: 12,
  1257. digits: 2,
  1258. radixPoint: ",",
  1259. autoGroup: true,
  1260. groupSeparator: " ",
  1261. groupSize: 3,
  1262. rightAlign: false
  1263. }).mask(testmask);
  1264. testmask.focus();
  1265. $("#testmask").trigger("click");
  1266. $("#testmask").Type("1234567890");
  1267. $.caret(testmask, 11);
  1268. $("#testmask").SendKey(",");
  1269. $("#testmask").SendKey(Inputmask.keyCode.BACKSPACE);
  1270. equal($("#testmask")[0].inputmask._valueGet(), "1 234 567,90", "Result " + $("#testmask")[0].inputmask._valueGet());
  1271. $("#testmask").remove();
  1272. });
  1273. test("numeric alias - value=\"-1234\" minvalue = 1000", function() {
  1274. var $fixture = $("#qunit-fixture");
  1275. $fixture.append('<input type="text" id="testmask" value="-1234" />');
  1276. Inputmask("numeric", {
  1277. allowMinus: true,
  1278. min: 1000,
  1279. max: 3000
  1280. }).mask(testmask);
  1281. equal($("#testmask")[0].inputmask._valueGet(), "1000", "Result " + $("#testmask")[0].inputmask._valueGet());
  1282. $("#testmask").remove();
  1283. });
  1284. test("numeric alias - value=\"-1234\" minvalue = -1000", function() {
  1285. var $fixture = $("#qunit-fixture");
  1286. $fixture.append('<input type="text" id="testmask" value="-1234" />');
  1287. Inputmask("numeric", {
  1288. allowMinus: true,
  1289. min: -1000,
  1290. max: 3000
  1291. }).mask(testmask);
  1292. equal($("#testmask")[0].inputmask._valueGet(), "-1000", "Result " + $("#testmask")[0].inputmask._valueGet());
  1293. $("#testmask").remove();
  1294. });
  1295. test("numeric alias - value=\"1000\" minvalue = 1000", function() {
  1296. var $fixture = $("#qunit-fixture");
  1297. $fixture.append('<input type="text" id="testmask" value="1000" />');
  1298. Inputmask("numeric", {
  1299. allowMinus: true,
  1300. min: 1000,
  1301. max: 3000
  1302. }).mask(testmask);
  1303. equal($("#testmask")[0].inputmask._valueGet(), "1000", "Result " + $("#testmask")[0].inputmask._valueGet());
  1304. $("#testmask").remove();
  1305. });
  1306. test("numeric alias - value=\"-1000\" minvalue = -1000", function() {
  1307. var $fixture = $("#qunit-fixture");
  1308. $fixture.append('<input type="text" id="testmask" value="-1000" />');
  1309. Inputmask("numeric", {
  1310. allowMinus: true,
  1311. min: -1000,
  1312. max: 3000
  1313. }).mask(testmask);
  1314. equal($("#testmask")[0].inputmask._valueGet(), "-1000", "Result " + $("#testmask")[0].inputmask._valueGet());
  1315. $("#testmask").remove();
  1316. });
  1317. test("decimal alias - overwrite decimal value - shahvaiz", function() {
  1318. var $fixture = $("#qunit-fixture");
  1319. $fixture.append('<input type="text" id="testmask" />');
  1320. var testmask = document.getElementById("testmask");
  1321. Inputmask("decimal", {
  1322. autoGroup: true,
  1323. groupSeparator: ",",
  1324. suffix: '%'
  1325. }).mask(testmask);
  1326. $("#testmask").Type("123.123");
  1327. $.caret(testmask, 4, 7);
  1328. $("#testmask").Type("4");
  1329. equal($("#testmask")[0].inputmask._valueGet(), "123.4%", "Result " + $("#testmask")[0].inputmask._valueGet());
  1330. $("#testmask").remove();
  1331. });
  1332. asyncTest("numeric alias - placeholder: \"_\" - lucafik", function() {
  1333. var $fixture = $("#qunit-fixture");
  1334. $fixture.append('<input type="text" id="testmask" />');
  1335. var testmask = document.getElementById("testmask");
  1336. Inputmask("numeric", {
  1337. integerDigits: 2,
  1338. digits: 2,
  1339. placeholder: "_",
  1340. digitsOptional: false
  1341. }).mask(testmask);
  1342. testmask.focus();
  1343. $("#testmask").trigger("click");
  1344. setTimeout(function() {
  1345. $("#testmask").Type("12");
  1346. start();
  1347. equal($("#testmask")[0].inputmask._valueGet(), "12.__", "Result " + $("#testmask")[0].inputmask._valueGet());
  1348. $("#testmask").remove();
  1349. }, 0);
  1350. });
  1351. test("numeric alias - type 123.123 - delete all - ivodopyanov", function() {
  1352. var $fixture = $("#qunit-fixture");
  1353. $fixture.append('<input type="text" id="testmask" />');
  1354. var testmask = document.getElementById("testmask");
  1355. Inputmask("numeric").mask(testmask);
  1356. $("#testmask").Type("123.123");
  1357. $.caret(testmask, 0, testmask.value.length);
  1358. $("#testmask").SendKey(Inputmask.keyCode.DELETE);
  1359. equal($("#testmask")[0].inputmask._valueGet(), "", "Result " + $("#testmask")[0].inputmask._valueGet());
  1360. $("#testmask").remove();
  1361. });
  1362. });