#1
  1. No one Important
    Devshed Novice (500 - 999 posts)

    Join Date
    Aug 2000
    Location
    Australia
    Posts
    524
    Rep Power
    14

    Problem with Javascript and text formatting.


    Hello there,

    I was wondering if someone could give me a hand with this script, Someone on here kindly posted it here for me, it formats a telephone number as they are typing it.

    Currently it formats the Number as (123)123-1234

    What I am having trouble with is getting it to format the number as

    (12)1234-1234

    and I also need it if possible to format a mobile number which is in the format of

    1234-123-123

    Could someone have a go at it for me, I am a little confused with the JS here.....

    Thanks

    Code:
    <html>
    <head>
    <script>
    var n;
    var p;
    var p1;
    
    function ValidatePhone(){
    p=p1.value
    if(p.length==3){
    pp=p;
    d4=p.indexOf('(')
    d5=p.indexOf(')')
    if(d4==-1){
    pp="("+pp;
    }
    if(d5==-1){
    pp=pp+")";
    }
    document.frmPhone.txtphone.value="";
    document.frmPhone.txtphone.value=pp;
    }
    if(p.length>1){
    d1=p.indexOf('(')
    d2=p.indexOf(')')
    if (d2==-1){
    l30=p.length;
    p30=p.substring(0,5);
    p30=p30+")"
    p31=p.substring(5,l30);
    pp=p30+p31;
    document.frmPhone.txtphone.value="";
    document.frmPhone.txtphone.value=pp;
    }
    }
    if(p.length>5){
    p11=p.substring(d1+1,d2);
    if(p11.length>1){
    p12=p11;
    l12=p12.length;
    l15=p.length
    p13=p11.substring(0,2);
    p14=p11.substring(2,l12);
    p15=p.substring(d2+1,l15);
    document.frmPhone.txtphone.value="";
    pp="("+p13+")"+p14+p15;
    document.frmPhone.txtphone.value=pp;
    }
    l16=p.length;
    p16=p.substring(d2+1,l16);
    l17=p16.length;
    
    if(l17>5&&p16.indexOf('-')==-1){
    	p17=p.substring(d2+1,d2+5);
    	p18=p.substring(d2+5,l16);
    	p19=p.substring(0,d2+1);
    	pp=p19+p17+"-"+p18;
    	document.frmPhone.txtphone.value="";
    	document.frmPhone.txtphone.value=pp;
    	}
    }
    setTimeout(ValidatePhone,100)
    }
    function getIt(m){
    n=m.name;
    p1=m
    ValidatePhone()
    }
    function testphone(obj1){
    p=obj1.value
    p=p.replace("(","")
    p=p.replace(")","")
    p=p.replace("-","")
    p=p.replace("-","")
    if (isNaN(p)==true){
    alert("Check phone");
    return false;
    }
    }
    </script>
    </head>
    <body>
    <form name=frmPhone>
    <input type=text name=txtphone minlength="13" maxlength="13" onclick="javascript:getIt(this)" >
    </form>
    </body>
    </html>
  2. #2
  3. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Apr 2003
    Posts
    173
    Rep Power
    12
    I just tested the script...when typing in 1212341234 it formatted the number as (12)1234-1234....
    so it seems to work...

    for that part anyway...
    To be able to format more than one number you may need to have some way to differentiate between formats, maybe add a radio button for each format..or checkbox or something of the sort.

IMN logo majestic logo threadwatch logo seochat tools logo