[ Index ]
 

Code source de LifeType 1.2.4

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/js/ui/ -> forms.js (source)

   1  /********

   2   * Lifetype.Forms namespace 

   3   *

   4   * Includes all functions related to forms, form validation, lists, etc.

   5   ***************/
   6  
   7  Lifetype.Forms = function() {}
   8  
   9  Lifetype.Forms.List = function() {}
  10  
  11  /**

  12   * @static

  13   * Removes the selected items from the list

  14   * @param elem The id of an HTML object

  15   */
  16  Lifetype.Forms.List.removeSelected = function( elem )
  17  {
  18      list = document.getElementById( elem );
  19      
  20      for( i = 0; i < list.options.length; i++ ) {
  21          if( list.options[i].selected ) {
  22              // the element is selected, remove it

  23              list.remove( i );
  24          }
  25      }
  26  }
  27  
  28  /**

  29   * @static

  30   * Removes al elements from a list

  31   * @param elem The id of an HTML object

  32   */
  33  Lifetype.Forms.List.removeAll = function( elem )
  34  {
  35      list = document.getElementById( elem );
  36  
  37      for( i = 0; i < list.options.length; i++ ) {
  38          list.remove( i );
  39      }
  40  }
  41  
  42  /**

  43   * @static

  44   * Selects all elements from a list

  45   * @param elem The id of an HTML object

  46   */
  47  Lifetype.Forms.List.selectAll = function( elem )
  48  {
  49      list = document.getElementById( elem );
  50  
  51      for( i = 0; i < list.options.length; i++ ) {
  52          list.options[i].selected = true;
  53      }
  54  }
  55  
  56  
  57  //

  58  // :TODO:

  59  // Move the functions above to the Lifetype.Forms.List namespace

  60  //

  61  
  62  //

  63  // counter to keep track of how many elements we have!

  64  //

  65  var numFields = 2;
  66  var debug = false;
  67  
  68  function hideElement(elem)
  69  {
  70   elem.type = 'hidden';
  71  }
  72  
  73  function showElement(elem)
  74  {
  75   elem.type = 'file';
  76  }
  77  function toggleElement(elem)
  78  {
  79   if( elem.type == 'hidden')
  80     showElement(elem);
  81   else
  82     hideElement(elem); 
  83  }
  84  
  85  function addElementToForm (containerName, fieldType, fieldName, fieldValue)
  86  {
  87  var separator = document.getElementById('marker');
  88  var container = document.getElementById(containerName);
  89  if (navigator.userAgent.indexOf("MSIE") != -1){//isie
  90  var fileTag ="<input type='"+fieldType+"' value='' name='"+fieldName+"_"+numFields+"'>";
  91  var fileObj = document.createElement(fileTag); 
  92  var newLine = document.createElement('BR');
  93  container.insertBefore(fileObj,separator);
  94  container.insertBefore(newLine,separator);
  95  numFields++;
  96  }//endie

  97    else
  98      {//notie
  99        if (document.getElementById) {
 100      var input = document.createElement('INPUT');
 101      var newLine = document.createElement('BR');
 102      var newFieldName = fieldName + '_' + numFields;
 103      if( debug) window.alert('adding field ' + newFieldName);
 104        if (document.all) { 
 105          input.type = fieldType;
 106          input.name = newFieldName;
 107          input.value = fieldValue;
 108        }
 109        else if (document.getElementById) { 
 110          input.setAttribute('type', fieldType);
 111          input.setAttribute('name', newFieldName);
 112          input.setAttribute('value', fieldValue);
 113        }
 114        
 115      container.insertBefore(input,separator);
 116      container.insertBefore(newLine,separator);
 117      numFields++;
 118    }
 119      }//endnotie

 120  }
 121  
 122  function getField (form, fieldName) {
 123    if (!document.all)
 124      return form[fieldName];
 125    else  // IE has a bug not adding dynamically created field 
 126          // as named properties so we loop through the elements array 

 127      for (var e = 0; e < form.elements.length; e++)
 128        if (form.elements[e].name == fieldName)
 129          return form.elements[e];
 130    return null;
 131  }
 132  
 133  function removeField (form, fieldName) {
 134    var field = getField (form, fieldName);
 135    if (field && !field.length)
 136      field.parentNode.removeChild(field);
 137  }
 138  
 139  function toggleField (form, fieldName, value) {
 140    var field = getField (form, fieldName);
 141    if (field)
 142      removeField (form, fieldName);
 143    else
 144      addField (form, 'hidden', fieldName, value);
 145  }
 146  
 147  /**

 148   * sets a field in the given document (like 'document' or 'parent.opener.document')

 149   * This function is useful to set a field regardless of in which form it is located

 150   */
 151  function setDocumentField(dest, fieldName, value )
 152  {
 153      element = dest.getElementById( fieldName );
 154      element.value = value;
 155  }
 156  
 157  function appendDocumentList(dest, fieldName, value, item )
 158  {
 159      dstList = dest.getElementById( fieldName );
 160      
 161      // check if the element is already there

 162      found = false;
 163      j = 0;
 164      while( j < dstList.options.length && !found ) {
 165          if( dstList.options[j].text == item && dstList.options[j].value == value ) {
 166              // element found!

 167              found = true;
 168          }
 169          j++;
 170      }
 171      
 172      // add the element only if not found

 173      if( !found ) {
 174          newOpt = new Option( item, value );
 175          dstList.options[dstList.options.length] = newOpt;
 176      }
 177      
 178      return true;
 179  }


Généré le : Mon Nov 26 21:04:15 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics