Convert a passed form reference to a string formatted like a JavaScript array of objects : Form Submit : Form Control JAVASCRIPT DHTML TUTORIALS


JAVASCRIPT DHTML TUTORIALS » Form Control » Form Submit »

 

Convert a passed form reference to a string formatted like a JavaScript array of objects




// Read the name, id, type, and value of one form control element
// as requested by form2ArrayString()
function formObj2String(obj) {
  var output = "{";
  if (obj.name) {
    output += "name:'" + obj.name + "',";
  }
  if (obj.id) {
    output += "id:'" + obj.id + "',";
  }
  output += "type:'" + obj.type + "',";
  switch (obj.type) {
    case "radio":
      if (obj.name) {
        obj = document.forms[0].elements[obj.name];
        var radioVal = "value:false,index:-1";
        for (var i = 0; i < obj.length; i++) {
          if (obj[i].checked) {
            radioVal = "value:true,index:" + i;
            i = obj.length;
          
        }
        output += radioVal;
      else {
        output += "value:" + obj.checked;
      }
      break;
    case "checkbox":
      output += "value:" + obj.checked;
      break;
    case "select-one":
      output += "value:" + obj.selectedIndex;
      break;
    case "select-multiple":
      output += "value:" + obj.selectedIndex;
      break;
    case "text":
      output += "value:'" + escape(obj.value"'";
      break;
    case "textarea":
      output += "value:'" + escape(obj.value"'";
      break;
    case "password":
      output += "value:'" + escape(obj.value"'";
      break;
    case "hidden":
      output += "value:'" + escape(obj.value"'";
      break;
    default:
      output += "";
  }
  output += "}"
  return output;
}

// Convert a passed form reference to a string formatted like
// a JavaScript array of objects
function form2ArrayString(form) {
  var elem, lastName = "";
  var output = "[";
  for (var i = 0; i < form.elements.length; i++) {
    elem = form.elements[i];
    if (elem.name && (elem.name != lastName)) {
      output += formObj2String(form.elements[i]) ",";
      lastName = elem.name;
    }
  }
  output = output.substring(0, output.length-1"]";
  return output;
}

// Distribute form control values from another source to the
// controls in this page's form, whose names/ids match those
// of the original form controls
function string2FormObj(form, str) {
  var elem, objArray = eval(str);
  for (var i = 0; i < objArray.length; i++) {
    elem = (objArray[i].nameform.elements[objArray[i].name: document.getElementById(objArray[i].id);
    switch (objArray[i].type) {
      case "radio":
        if (objArray[i].name && objArray[i].value && objArray[i].index >= 0) {
          elem = elem[objArray[i].index];
        }
        elem.checked = objArray[i].value;
        break;
      case "checkbox":
        elem.checked = objArray[i].value;
        break;
      case "select-one":
        elem.selectedIndex = objArray[i].value;
        break;
      case "select-multiple":
        elem.selectedIndex = objArray[i].value;
        break;
      default:
        elem.value = unescape(objArray[i].value);
    }
  }
}


           
       



-

Leave a Comment / Note


 
Verification is used to prevent unwanted posts (spam). .

Follow Navioo On Twitter

JAVASCRIPT DHTML TUTORIALS

 Navioo Form Control
» Form Submit