This example shows how to format and validate a US telephone number field on an Add or Edit screen layout.

The example involves a single field named tel_number. Data in the form of numbers entered into this field will automatically be formatted in the usual form of a telephone number in the USA. For example, entering the digits 1234567890 will result in a display of (123)456-7890. In addition, the function will not allow any non-numeric characters to be entered unless the user acknowledges that this is what they want.

To set up this requirement, take the following steps –

  • Within the data dictionary, define the field TEL_NUMBER with a display type of Text Field
  • Make sure you give these fields read and write permission
  • Place this field on an Add screen layout. Add an HTML modifier to this field. The modifier value should be onkeypress=formatAsPhoneNumber(this);
  • Place the following JavaScript functions within the UserJavaScript.js file.

    function chkNAN(char2chk)
    {
       var validNum = "0123456789";
       if (validNum.indexOf(char2chk) == "-1")
          return(confirm("You have entered a non-numeric 
                          character.\nDo you want to turn off non-
                          numeric character checking?"));
    }
    
    function formatAsPhoneNum(fld)
    {
       var isNamedFone = false;
       fldVal = fld.value;
    
       var tmpStr = "(";
       keyCount = fldVal.length;
       keyEntered =fldVal.substring(keyCount-1,keyCount);
    
       if (keyCount < 2)   isNamedFone = false;
       if (!isNamedFone)   isNamedFone = chkNAN(keyEntered);
    
       keyCount++;
       with (document.editForm)
       {
          switch (keyCount)
          {
             case 2:
                tmpStr +=  fldVal;
                fld.value = tmpStr;
                break;
             case 5:
                fld.value +=  ")";
                break;
              case 9:
                fld.value += "-"; 
                break;
          }
       }
    }
  • When the user enters the telephone number in the field it will be validated, and the formatting applied to the number. If they enter an invalid character, they will see a dialog box with the message You have entered a non-numeric character. Do you want to turn off non-numeric character checking?