]> Dogcows Code - chaz/p5-CGI-Ex/blobdiff - lib/CGI/Ex/validate.js
CGI::Ex 2.00
[chaz/p5-CGI-Ex] / lib / CGI / Ex / validate.js
index 8d4c296aee4d37ab42bc9221799dd53121164813..a5014afef5d789226419a9055965a986d62f71ab 100644 (file)
@@ -1,10 +1,10 @@
 /**----------------------------------------------------------------***
-*  Copyright 2004 - Paul Seamons                                     *
+*  Copyright 2006 - Paul Seamons                                     *
 *  Distributed under the Perl Artistic License without warranty      *
 *  Based upon CGI/Ex/Validate.pm v1.14 from Perl                     *
 *  For instructions on usage, see perldoc of CGI::Ex::Validate       *
 ***----------------------------------------------------------------**/
-// $Revision: 1.31 $
+// $Revision: 1.34 $
 
 function Validate () {
  this.error             = vob_error;
@@ -60,7 +60,10 @@ function vob_validate (form, val_hash) {
    /// look for a group order and then fail back to the keys of the group
    var fields = group_val['group fields'];
    var order  = new Array();
-   for (var key in group_val) order[order.length] = key;
+   for (var key in group_val) {
+     if (key == 'extend') continue; // Protoype Array() fix
+     order[order.length] = key;
+   }
    order = order.sort();
    if (fields) {
      if (typeof(fields) != 'object' || ! fields.length)
@@ -151,6 +154,7 @@ function vob_validate (form, val_hash) {
 
  /// store any extra items from self
  for (var key in this) {
+   if (key == 'extend') continue; // Protoype Array() fix
    if (! key.match('_error$')
        && ! key.match('^(raise_error|as_hash_\\w+|as_array_\\w+|as_string_\\w+)$')) continue;
    EXTRA[key] = this[key];
@@ -241,7 +245,10 @@ function vob_validate_buddy (form, field, field_val, N_level, ifs_match) {
 
  var errors = new Array();
  var types  = new Array();
- for (var key in field_val) types[types.length] = key;
+ for (var key in field_val) {
+   if (key == 'extend') continue; // Protoype Array() fix
+   types[types.length] = key;
+ }
  types = types.sort();
 
  /// allow for not running some tests in the cgi
@@ -570,9 +577,9 @@ function vob_check_type (value, type, field, form) {
  /// the "username" portion of an email address
  } else if (type == 'LOCAL_PART') {
    if (typeof(value) == 'undefined' || ! value.length) return 0;
-   if (! value.match('[^a-z0-9.\\-!&]')) return 0;
-   if (! value.match('^[.\\-]'))         return 0;
-   if (! value.match('[.\\-&]$'))        return 0;
+   if (! value.match('[^a-z0-9.\\-!&+]'))   return 0;
+   if (! value.match('^[.\\-]'))            return 0;
+   if (! value.match('[.\\-&]$'))           return 0;
    if (! value.match('(\\.-|-\\.|\\.\\.)')) return 0;
 
  /// standard IP address
@@ -771,7 +778,10 @@ function eob_as_hash (extra2) {
  if (joiner) {
    var header = eob_get_val('as_hash_header', extra2, extra1, '');
    var footer = eob_get_val('as_hash_footer', extra2, extra1, '');
-   for (var key in ret) ret[key] = header + ret[key].join(joiner) + footer;
+   for (var key in ret) {
+     if (key == 'extend') continue; // Protoype Array() fix
+     ret[key] = header + ret[key].join(joiner) + footer;
+   }
  }
 
  return ret;
@@ -913,6 +923,7 @@ document.validate = function (form, val_hash) {
  // undo previous inline
  if (document.did_inline) {
    for (var key in document.did_inline) {
+     if (key == 'extend') continue; // Protoype Array() fix
      var el = document.getElementById(key);
      if (el) el.innerHTML = '';
    }
@@ -937,6 +948,7 @@ document.validate = function (form, val_hash) {
    var d = document.did_inline = new Array();
    var hash = err_obj.as_hash();
    for (var key in hash) {
+     if (key == 'extend') continue; // Protoype Array() fix
      var el = document.getElementById(key);
      if (el) el.innerHTML = hash[key];
      d[key] = 1;
This page took 0.023658 seconds and 4 git commands to generate.