Compare Page Revisions
« Older Revision - Back to Page History - Current Revision
TelephoneNumberTextBox
Imports Microsoft.VisualBasic '=================================== ' Files required by this class ' ' (1) Scripts/TelephoneNumberTextBox.js '----------------------------------- Namespace AcmeBroomCompany Public Class TelephoneNumberTextBox Inherits TextBox Public Sub New() Me.Attributes.Add("onkeydown", "javascript:backspacerDOWN(this,event);") Me.Attributes.Add("onkeyup", "javascript:backspacerUP(this,event, 1);") Me.MaxLength = 12 End Sub End Class End Namespace
/* This script is based on the javascript code of Roman Feldblum (web.developer@programmer.net) Original script : http://javascript.internet.com/forms/format-phone-number.html Original script is revised by Eralper Yilmaz (http://www.eralper.com) Revised script : http://www.kodyaz.com */ var zChar = new Array(' ', '(', ')', '-', '.'); var maxphonelength = 13; var phonevalue1; var phonevalue2; var cursorposition; function ParseForNumber1(object){ phonevalue1 = ParseChar(object.value, zChar); } function ParseForNumber2(object){ phonevalue2 = ParseChar(object.value, zChar); } function backspacerUP(object,e, bMTN) { if(e){ e = e } else { e = window.event } if(e.which){ var keycode = e.which } else { var keycode = e.keyCode } ParseForNumber1(object) if(keycode >= 48){ //ValidatePhone(object) if (bMTN == 1) FormatPhone(object); else FormatNPANXX(object); } } function backspacerDOWN(object,e) { if(e){ e = e } else { e = window.event } if(e.which){ var keycode = e.which } else { var keycode = e.keyCode } ParseForNumber2(object) } function GetCursorPosition(){ var t1 = phonevalue1; var t2 = phonevalue2; var bool = false for (i=0; i<t1.length; i++) { if (t1.substring(i,1) != t2.substring(i,1)) { if(!bool) { cursorposition=i bool=true } } } } function ValidatePhoneX(object){ var p = phonevalue1 p = p.replace(/[^\d]*/gi,"") if (p.length < 3) { object.value=p } else if(p.length==3){ pp=p; d4=p.indexOf('-') //d5=p.indexOf(')') if(d4==-1){ //pp="("+pp; pp=pp+"-"; } //if(d5==-1){ //pp=pp+")"; //} object.value = pp; } else if(p.length>3 && p.length < 7){ //p ="(" + p; l30=p.length; p30=p.substring(0,3); p30=p30+"-" p31=p.substring(4,l30); pp=p30+p31; object.value = pp; } else if(p.length >= 7){ p ="(" + p; l30=p.length; p30=p.substring(0,4); p30=p30+")" p31=p.substring(4,l30); pp=p30+p31; l40 = pp.length; p40 = pp.substring(0,8); p40 = p40 + "-" p41 = pp.substring(8,l40); ppp = p40 + p41; object.value = ppp.substring(0, maxphonelength); } GetCursorPosition() if(cursorposition >= 0){ if (cursorposition == 0) { cursorposition = 2 } else if (cursorposition <= 2) { cursorposition = cursorposition + 1 } else if (cursorposition <= 5) { cursorposition = cursorposition + 2 } else if (cursorposition == 6) { cursorposition = cursorposition + 2 } else if (cursorposition == 7) { cursorposition = cursorposition + 4 e1=object.value.indexOf(')') e2=object.value.indexOf('-') if (e1>-1 && e2>-1){ if (e2-e1 == 4) { cursorposition = cursorposition - 1 } } } else if (cursorposition < 11) { cursorposition = cursorposition + 3 } else if (cursorposition == 11) { cursorposition = cursorposition + 1 } else if (cursorposition >= 12) { cursorposition = cursorposition } var txtRange = object.createTextRange(); txtRange.moveStart( "character", cursorposition); txtRange.moveEnd( "character", cursorposition - object.value.length); txtRange.select(); } } function ParseChar(sStr, sChar) { if (sChar.length == null) { zChar = new Array(sChar); } else zChar = sChar; for (i=0; i<zChar.length; i++) { sNewStr = ""; var iStart = 0; var iEnd = sStr.indexOf(sChar[i]); while (iEnd != -1) { sNewStr += sStr.substring(iStart, iEnd); iStart = iEnd + 1; iEnd = sStr.indexOf(sChar[i], iStart); } sNewStr += sStr.substring(sStr.lastIndexOf(sChar[i]) + 1, sStr.length); sStr = sNewStr; } return sNewStr; } function FormatPhone(PhoneField) { var phone; var phoneLen; var d4; phone=PhoneField.value phone=phone.replace("(","") phone=phone.replace("(","") phone=phone.replace("(","") phone=phone.replace(")","") phone=phone.replace(")","") phone=phone.replace(")","") phone=phone.replace("-","") phone=phone.replace("-","") phone=phone.replace("-","") phone=phone.replace("-","") phone=phone.replace("-","") phone=phone.replace("/","") phone=phone.replace("/","") phone=phone.replace("/","") phoneLen=phone.length if(phoneLen==3) { phone=phone+"-"; } else { if(phoneLen>3) { phone=phone.substring(0,3) + "-" + phone.substring(3, phone.length); } } if(phoneLen==6) { phone=phone+"-"; } else { if(phoneLen>6) { phone=phone.substring(0,7) + "-" + phone.substring(7, phone.length); } } PhoneField.value=""; PhoneField.value=phone; } function FormatNPANXX(NPANXXField) { var phone; var phoneLen; var d4; phone=NPANXXField.value phone=phone.replace("(","") phone=phone.replace("(","") phone=phone.replace("(","") phone=phone.replace(")","") phone=phone.replace(")","") phone=phone.replace(")","") phone=phone.replace("-","") phone=phone.replace("-","") phone=phone.replace("-","") phone=phone.replace("-","") phone=phone.replace("-","") phoneLen=phone.length if(phoneLen==3) { phone=phone+"-"; } else { if(phoneLen>3) { phone=phone.substring(0,3) + "-" + phone.substring(3, phone.length); } } if(phoneLen==6) { //phone=phone+"-"; } else { if(phoneLen>6) { //phone=phone.substring(0,7) + "-" + phone.substring(7, phone.length); } } NPANXXField.value=""; NPANXXField.value=phone; } function ValidatePhone (objPhone) { var strPhone = objPhone.value; if (strPhone == '') return true; var vNPANumber, vNXXNumber, vRangeNumber if ((strPhone.charAt(3) != '-') || (strPhone.charAt(7) != '-') || (strPhone.length != 12)) { alert("Phone number should be entered in 999-999-9999 format."); objPhone.focus(); return false; } //alert(strPhone); vNPANumber = strPhone.substring(0, 3) vNXXNumber = strPhone.substring(4, 7) vRangeNumber = strPhone.substring(8, 12) //alert(vNPANumber.length); //alert(vNPANumber); //alert(vNXXNumber.length); //alert(vNXXNumber); //alert(vRangeNumber.length); //alert(vRangeNumber); if ((vNPANumber.length != 3) || (vNXXNumber.length != 3) || (vRangeNumber.length != 4)) { alert("Phone number should be entered in 999-999-9999 format."); objPhone.focus(); return false; } if ( (isNaN(vNPANumber)) || (isNaN(vNXXNumber)) || (isNaN(vRangeNumber)) ) { alert("Phone number should be entered in 999-999-9999 format."); objPhone.focus(); return false; } return true; }
ScrewTurn Wiki version 3.0.1.400. Some of the icons created by FamFamFam. Except where noted, all contents Copyright © 1999-2024, Patrick Jasinski.