You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ni...@apache.org on 2006/01/08 21:30:53 UTC

svn commit: r367089 - in /jakarta/commons/proper/validator/trunk: src/javascript/org/apache/commons/validator/javascript/ xdocs/

Author: niallp
Date: Sun Jan  8 12:30:36 2006
New Revision: 367089

URL: http://svn.apache.org/viewcvs?rev=367089&view=rev
Log:
Fix for bug 37134 - Resolve issue in JavaScript validation when the prototype library - based on patch from Philippe Mouawad

Modified:
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateByte.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateCreditCard.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateDate.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateEmail.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateFloat.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateFloatRange.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateIntRange.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateInteger.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMask.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMaxLength.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMinLength.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateRequired.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateShort.js
    jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateUtilities.js
    jakarta/commons/proper/validator/trunk/xdocs/changes.xml

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateByte.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateByte.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateByte.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateByte.js Sun Jan  8 12:30:36 2006
@@ -12,9 +12,12 @@
         var i = 0;
         var fields = new Array();
         
-        oByte = eval('new ' + retrieveFormName(form) + '_ByteValidations()');
+        var oByte = eval('new ' + retrieveFormName(form) + '_ByteValidations()');
 
-        for (x in oByte) {
+        for (var x in oByte) {
+            if (!jcv_verifyArrayElement(x, oByte[x])) {
+                continue;
+            }
             var field = form[oByte[x][0]];
 
             if ((field.type == 'hidden' ||

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateCreditCard.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateCreditCard.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateCreditCard.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateCreditCard.js Sun Jan  8 12:30:36 2006
@@ -12,9 +12,12 @@
         var i = 0;
         var fields = new Array();
  
-        oCreditCard = eval('new ' + retrieveFormName(form) +  '_creditCard()');
+        var oCreditCard = eval('new ' + retrieveFormName(form) +  '_creditCard()');
 
-        for (x in oCreditCard) {
+        for (var x in oCreditCard) {
+            if (!jcv_verifyArrayElement(x, oCreditCard[x])) {
+                continue;
+            }
             if ((form[oCreditCard[x][0]].type == 'text' ||
                  form[oCreditCard[x][0]].type == 'textarea') &&
                 (form[oCreditCard[x][0]].value.length > 0)  &&

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateDate.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateDate.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateDate.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateDate.js Sun Jan  8 12:30:36 2006
@@ -12,9 +12,12 @@
        var i = 0;
        var fields = new Array();
  
-       oDate = eval('new ' + retrieveFormName(form) +  '_DateValidations()');
+       var oDate = eval('new ' + retrieveFormName(form) +  '_DateValidations()');
 
-       for (x in oDate) {
+       for (var x in oDate) {
+            if (!jcv_verifyArrayElement(x, oDate[x])) {
+                continue;
+            }
            var field = form[oDate[x][0]];
            var value = field.value;
            var isStrict = true;

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateEmail.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateEmail.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateEmail.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateEmail.js Sun Jan  8 12:30:36 2006
@@ -12,9 +12,12 @@
         var i = 0;
         var fields = new Array();
 
-        oEmail = eval('new ' + retrieveFormName(form) +  '_email()');
+        var oEmail = eval('new ' + retrieveFormName(form) +  '_email()');
 
-        for (x in oEmail) {
+        for (var x in oEmail) {
+            if (!jcv_verifyArrayElement(x, oEmail[x])) {
+                continue;
+            }
             var field = form[oEmail[x][0]];
             if ((field.type == 'hidden' || 
                  field.type == 'text' ||

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateFloat.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateFloat.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateFloat.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateFloat.js Sun Jan  8 12:30:36 2006
@@ -12,8 +12,11 @@
         var i = 0;
         var fields = new Array();
  
-        oFloat = eval('new ' + retrieveFormName(form) +  '_FloatValidations()');
-        for (x in oFloat) {
+        var oFloat = eval('new ' + retrieveFormName(form) +  '_FloatValidations()');
+        for (var x in oFloat) {
+            if (!jcv_verifyArrayElement(x, oFloat[x])) {
+                continue;
+            }
         	var field = form[oFloat[x][0]];
         	
             if ((field.type == 'hidden' ||

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateFloatRange.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateFloatRange.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateFloatRange.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateFloatRange.js Sun Jan  8 12:30:36 2006
@@ -12,8 +12,11 @@
         var i = 0;
         var fields = new Array();
         
-        oRange = eval('new ' + retrieveFormName(form) +  '_floatRange()');
-        for (x in oRange) {
+        var oRange = eval('new ' + retrieveFormName(form) +  '_floatRange()');
+        for (var x in oRange) {
+            if (!jcv_verifyArrayElement(x, oRange[x])) {
+                continue;
+            }
             var field = form[oRange[x][0]];
             
             if ((field.type == 'hidden' ||

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateIntRange.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateIntRange.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateIntRange.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateIntRange.js Sun Jan  8 12:30:36 2006
@@ -12,8 +12,11 @@
         var i = 0;
         var fields = new Array();
  
-        oRange = eval('new ' + retrieveFormName(form) +  '_intRange()');        
-        for (x in oRange) {
+        var oRange = eval('new ' + retrieveFormName(form) +  '_intRange()');        
+        for (var x in oRange) {
+            if (!jcv_verifyArrayElement(x, oRange[x])) {
+                continue;
+            }
             var field = form[oRange[x][0]];
             if (field.disabled == false)  {
                 var value = '';

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateInteger.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateInteger.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateInteger.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateInteger.js Sun Jan  8 12:30:36 2006
@@ -12,8 +12,11 @@
         var i = 0;
         var fields = new Array();
  
-        oInteger = eval('new ' + retrieveFormName(form) +  '_IntegerValidations()');
-        for (x in oInteger) {
+        var oInteger = eval('new ' + retrieveFormName(form) +  '_IntegerValidations()');
+        for (var x in oInteger) {
+            if (!jcv_verifyArrayElement(x, oInteger[x])) {
+                continue;
+            }
             var field = form[oInteger[x][0]];
 
             if ((field.type == 'hidden' ||

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMask.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMask.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMask.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMask.js Sun Jan  8 12:30:36 2006
@@ -12,8 +12,11 @@
         var i = 0;
         var fields = new Array();
  
-        oMasked = eval('new ' + retrieveFormName(form) +  '_mask()');      
-        for (x in oMasked) {
+        var oMasked = eval('new ' + retrieveFormName(form) +  '_mask()');      
+        for (var x in oMasked) {
+            if (!jcv_verifyArrayElement(x, oMasked[x])) {
+                continue;
+            }
             var field = form[oMasked[x][0]];
 
             if ((field.type == 'hidden' ||

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMaxLength.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMaxLength.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMaxLength.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMaxLength.js Sun Jan  8 12:30:36 2006
@@ -15,8 +15,11 @@
         var i = 0;
         var fields = new Array();
  
-        oMaxLength = eval('new ' + retrieveFormName(form) +  '_maxlength()');        
-        for (x in oMaxLength) {
+        var oMaxLength = eval('new ' + retrieveFormName(form) +  '_maxlength()');        
+        for (var x in oMaxLength) {
+            if (!jcv_verifyArrayElement(x, oMaxLength[x])) {
+                continue;
+            }
             var field = form[oMaxLength[x][0]];
 
             if ((field.type == 'hidden' ||

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMinLength.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMinLength.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMinLength.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateMinLength.js Sun Jan  8 12:30:36 2006
@@ -15,9 +15,12 @@
         var i = 0;
         var fields = new Array();
 
-        oMinLength = eval('new ' + retrieveFormName(form) +  '_minlength()');
+        var oMinLength = eval('new ' + retrieveFormName(form) +  '_minlength()');
 
-        for (x in oMinLength) {
+        for (var x in oMinLength) {
+            if (!jcv_verifyArrayElement(x, oMinLength[x])) {
+                continue;
+            }
             var field = form[oMinLength[x][0]];
 
             if ((field.type == 'hidden' ||

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateRequired.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateRequired.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateRequired.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateRequired.js Sun Jan  8 12:30:36 2006
@@ -13,9 +13,12 @@
         var i = 0;
         var fields = new Array();
 
-        oRequired = eval('new ' + retrieveFormName(form) +  '_required()');
+        var oRequired = eval('new ' + retrieveFormName(form) +  '_required()');
 
-        for (x in oRequired) {
+        for (var x in oRequired) {
+            if (!jcv_verifyArrayElement(x, oRequired[x])) {
+                continue;
+            }
             var field = form[oRequired[x][0]];
 
             if (field == null) {

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateShort.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateShort.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateShort.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateShort.js Sun Jan  8 12:30:36 2006
@@ -12,9 +12,12 @@
         var i = 0;
         var fields = new Array();
  
-        oShort = eval('new ' + retrieveFormName(form) +  '_ShortValidations()');
+        var oShort = eval('new ' + retrieveFormName(form) +  '_ShortValidations()');
 
-        for (x in oShort) {
+        for (var x in oShort) {
+            if (!jcv_verifyArrayElement(x, oShort[x])) {
+                continue;
+            }
             var field = form[oShort[x][0]];
 
             if ((field.type == 'hidden' ||

Modified: jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateUtilities.js
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateUtilities.js?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateUtilities.js (original)
+++ jakarta/commons/proper/validator/trunk/src/javascript/org/apache/commons/validator/javascript/validateUtilities.js Sun Jan  8 12:30:36 2006
@@ -65,6 +65,23 @@
   }
 
   /**
+   * Checks that the array element is a valid
+   * Commons Validator element and not one inserted by
+   * other JavaScript libraries (for example the
+   * prototype library inserts an "extends" into
+   * all objects, including Arrays).
+   * @param name The element name.
+   * @param value The element value.
+   */
+  function jcv_verifyArrayElement(name, element) {
+      if (element && element.length && element.length == 3) {
+          return true;
+      } else {
+          return false;
+      }
+  }
+
+  /**
    * Check a value only contains valid numeric digits
    * @param argvalue The value to check.
    */

Modified: jakarta/commons/proper/validator/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/validator/trunk/xdocs/changes.xml?rev=367089&r1=367088&r2=367089&view=diff
==============================================================================
--- jakarta/commons/proper/validator/trunk/xdocs/changes.xml (original)
+++ jakarta/commons/proper/validator/trunk/xdocs/changes.xml Sun Jan  8 12:30:36 2006
@@ -39,6 +39,10 @@
   <body>
 
     <release version="1.2.1 (alpha)" date="in SVN">
+      <action dev="niallp" type="fix" issue="37134" due-to="Philippe Mouawad">
+         Resolve issue in JavaScript validation when the prototype library
+         is used.
+      </action>
       <action dev="niallp" type="fix">
          Re-factor JavaScript error handling into a common method and only
          set focus on fields which are not 'hidden' type or hidden by CSS.



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org