From: <ex...@us...> - 2013-07-18 10:36:58
|
Revision: 6096 http://sourceforge.net/p/web-erp/reponame/6096 Author: exsonqu Date: 2013-07-18 10:36:54 +0000 (Thu, 18 Jul 2013) Log Message: ----------- 07/18/2013 Exson: modify the MisFunctions.js to improve the locale number validation feature. Modified Paths: -------------- trunk/javascripts/MiscFunctions.js Modified: trunk/javascripts/MiscFunctions.js =================================================================== --- trunk/javascripts/MiscFunctions.js 2013-07-17 18:05:31 UTC (rev 6095) +++ trunk/javascripts/MiscFunctions.js 2013-07-18 10:36:54 UTC (rev 6096) @@ -5,15 +5,58 @@ function ReloadForm(fB){ fB.click(); } +var kPrev = 'a'; function rTN(event){ if (window.event) k=window.event.keyCode; else if (event) k=event.which; else return true; kC=String.fromCharCode(k); - if ((k==null) || (k==0) || (k==8) || (k==9) || (k==13) || (k==27) || (k==32)) return true; - else if ((("0123456789.,-").indexOf(kC)>-1)) return true; - else return false; + if ((k==null) || (k==0) || (k==8) || (k==9) || (k==13) || (k==27)){ + return true; + } + else if ((("0123456789., ").indexOf(kC)>-1)){ + if(("., ").indexOf(kC)>-1){ + if(("., ").indexOf(kPrev)>-1){ + return false; + }else{ + kPrev = kC; + return true; + } + }else{ + kPrev = kC; + return true; + } + } + else return false; } +function rLocaleNumber(){ + switch(Lang){ + case 'US': + var patt = /(?:^([1-9]{1,3}(?:,?\d{3})*(?:\.\d{1,})?)$)|(?:^(0\.\d{1,})$)/; + break; + case 'IN': + var patt = /(?:^([1-9]{1,2},)?(\d{2},)*(\d{3})(\.\d+)?$)|(?:^[1-9]{1,3}(\.\d+)?$)|(?:^(0\.\d{1,})$)/; + break; + case 'EE': + var patt = /(?:^[1-9]{1,3}(?:\s?\d{3})*(?:\.\d{1,})?$)|(?:^(0\.\d{1,})$)/; + break; + case 'FR': + var patt = /(?:^[1-9]{1,3}(?:\s?\d{3})*(?:,\d{1,})?$)|(?:^(0,\d{1,})$)/; + break; + case 'GM': + var patt = /(?:^[1-9]{1,3}(?:\.?\d{3})*(?:,\d{1,})?$)|(?:^(0,\d{1,})$)/; + break; + + } + if(patt.test(this.value)){ + this.setCustomValidity(''); + return true; + + }else{ + this.setCustomValidity('The number format is wrong'); + return false; + }; +} function assignComboToInput(c,i){ i.value=c.value; } @@ -214,6 +257,7 @@ ds[i].onchange=changeDate; } if (ds[i].className=="number") ds[i].onkeypress=rTN; + if (ds[i].className=="number") ds[i].onchange=rLocaleNumber; } } window.onload=initial; |