PmWiki


Validate

Form validation using JavaScript

<script type="text/javascript">formField="";</script>
<label for="Name">Business&nbsp;Name:</label>
<input type="text" name="Name" id="Name" size="30" tabindex="1" onblur="validatePresent(this, 'Status');" />
<span id="Status">&nbsp;</span>
function validatePresent(valfield,   // element to be validated
                         infofield ) // id of element to receive info/error msg
{
  var stat = commonCheck (valfield, infofield, true);
  msg (infofield, "warn", "OK");
  return true;
}

function commonCheck    (valfield,   // element to be validated
                         infofield,  // id of element to receive info/error msg
                         required)   // true if required
{
  if (formField && (formField.id != valfield.id)) {
    setfocus(formField);
    return false;
  }
  formField="";

  if (!document.getElementById) return true; // not available on this browser - leave validation to server
  var elem = document.getElementById(infofield);
  if (!elem.firstChild) return true;                        // not available on this browser
  if (elem.firstChild.nodeType != node_text) return true;   // infofield is wrong type of node
  if (emptyString.test(valfield.value)) {
    if (required) {
      msg (infofield, "error", "ERROR: Required Information");
      formField=valfield;
      setfocus(valfield);
      return false;
    }
    else {
      msg (infofield, "warn", "");   // OK
      return true;
    }
  }
  return proceed;
}

function msg(fld,     // id of element to display message in
             msgtype, // class to give element ("warn" or "error")
             message) // string to display
{
  var dispmessage;
  if (emptyString.test(message))
    dispmessage = String.fromCharCode(nbsp);
  else
    dispmessage = message;
  var elem = document.getElementById(fld);
  elem.firstChild.nodeValue = dispmessage;
  elem.className = msgtype;   // set the CSS class to adjust appearance of message
}

function setFocusDelayed() {
  global_valfield.focus();
}

function setfocus(valfield) {
  // save valfield in global variable so value retained when routine exits
  global_valfield = valfield;
  setTimeout( 'setFocusDelayed()', 100 );
}
History - Print - Recent Changes - Search - Page last modified on 2009, January 11 @ 03:06:18
guestbook