SitePoint Sponsor

User Tag List

Results 1 to 3 of 3
  1. #1
    SitePoint Member
    Join Date
    Mar 2011
    Posts
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    clear form fields

    The script I am using formats the text in the phone number field, so that it looks like this: (xxx) xxx-xxxx and only accepts numbers. It doesn't clear when the page reloads however. What do I need to input in order to have the field clear? I tried inputting the following commands in the body tag:
    <body onload="document.field_name.reset();">
    <body onload="document.form_name.reset();">
    <body onload="document.field_name.clear();">
    <body onload="document.form_name.clear();">

    Here is the original code. I apologize for the length but wanted to present everything. Thanks to the gurus out there for the help!
    <script language="javascript">

    <!-- This script is based on the javascript code of Roman Feldblum (web.developer@programmer.net) -->
    <!-- Original script : http://javascript.internet.com/forms...ne-number.html -->
    <!-- Original script is revised by Eralper Yilmaz (http://www.eralper.com) -->
    <!-- Revised script : http://www.kodyaz.com -->
    <!-- Format : "(123) 456-7890" -->

    var zChar = new Array(' ', '(', ')', '-', '.');
    var maxphonelength = 14;
    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) {
    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)
    }
    }

    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
    window.status=cursorposition
    bool=true
    }
    }
    }
    }

    function ValidatePhone(object){

    var p = phonevalue1

    p = p.replace(/[^\d]*/gi,"")

    if (p.length < 3) {
    document.form_name.field_name.value=p
    } else if(p.length==3){
    pp=p;
    d4=p.indexOf('(')
    d5=p.indexOf(')')
    if(d4==-1){
    pp="("+pp;
    }
    if(d5==-1){
    pp=pp+")";
    }
    document.form_name.field_name.value=p
    } else if(p.length>3 && p.length < 7){
    p ="(" + p;
    l30=p.length;
    p30=p.substring(0,4);
    p30=p30+") "

    p31=p.substring(4,l30);
    pp=p30+p31;

    document.form_name.field_name.value=p
    } 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,9);
    p40 = p40 + "-"

    p41 = pp.substring(9,l40);
    ppp = p40 + p41;

    document.form_name.field_name.value = ppp.substring(0, maxphonelength);
    }

    GetCursorPosition()

    if(cursorposition >= 0){
    if (cursorposition == 0) {
    cursorposition = 2
    } else if (cursorposition <= 2) {
    cursorposition = cursorposition + 1
    } else if (cursorposition <= 4) {
    cursorposition = cursorposition + 3
    } else if (cursorposition == 5) {
    cursorposition = cursorposition + 3
    } else if (cursorposition == 6) {
    cursorposition = cursorposition + 3
    } else if (cursorposition == 7) {
    cursorposition = cursorposition + 4
    } else if (cursorposition == 8) {
    cursorposition = cursorposition + 4
    e1= document.form_name.field_name.value.indexOf(')')
    e2= document.form_name.field_name.value.indexOf('-')
    if (e1>-1 && e2>-1){
    if (e2-e1 == 4) {
    cursorposition = cursorposition - 1
    }
    }
    } else if (cursorposition == 9) {
    cursorposition = cursorposition + 4
    } else if (cursorposition < 11) {
    cursorposition = cursorposition + 3
    } else if (cursorposition == 11) {
    cursorposition = cursorposition + 1
    } else if (cursorposition == 12) {
    cursorposition = cursorposition + 1
    } else if (cursorposition >= 13) {
    cursorposition = cursorposition
    }

    var txtRange = document.form_name.field_name.createTextRange();
    txtRange.moveStart( "character", cursorposition);
    txtRange.moveEnd( "character", cursorposition - document.form_name.field_name.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;
    }
    </script>

  2. #2
    Unobtrusively zen silver trophybronze trophy
    paul_wilkins's Avatar
    Join Date
    Jan 2007
    Location
    Christchurch, New Zealand
    Posts
    14,729
    Mentioned
    104 Post(s)
    Tagged
    4 Thread(s)
    Quote Originally Posted by kat18210 View Post
    The script I am using formats the text in the phone number field, so that it looks like this: (xxx) xxx-xxxx and only accepts numbers. It doesn't clear when the page reloads however.
    The script doesn't add anything to the form field when the page loads, so making changes to the script won't achieve anything for you.

    What is the HTML code for the form field, and which web browsers have you tested this in.
    Programming Group Advisor
    Reference: JavaScript, Quirksmode Validate: HTML Validation, JSLint
    Car is to Carpet as Java is to JavaScript

  3. #3
    SitePoint Member
    Join Date
    Mar 2011
    Posts
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Exactly it, it is a FF issue, not a JS issue. Thanks for pointing that out!
    (We decided to leave the fields as they are, since it's not a specific JS issue.)


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •