tests_numeric.js 48 KB

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