Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/09/2010, 05:58
Astroscuro
 
Fecha de Ingreso: abril-2010
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Crear array usando bucle for

Hola!

llevo un rato mirando en la web a ver si aprendo/entiendo que hay mal en mi sintaxis.

Se trata de validar un formulario, en el cual hay unos campos donde se especifican los datos de unos autores. Además cada autor lleva un campo asociado con su número de orden.

Entonces estoy tratando de coger todos los números de orden en un array, para verificar que son números y después tengo que hacer una comprobación de que todos son distintos, que de eso ya no tengo ni idea.

Hasta la fecha sólo había tratado con arrays en php...


Código Javascript:
Ver original
  1. // JavaScript Document
  2. function valid() {
  3.     String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };
  4.     var patronNaN = /^[0-9]+$/;
  5.     if (pos == 0) {
  6.         alert("No ha seleccionado ning\u00fan autor");
  7.         return false;
  8.     }
  9.     var orden=new Array();
  10.     for (i=1;i<=pos;i++) {
  11.         ape = document.getElementById("ape"+i).value.trim();
  12.         nomb = document.getElementById("nomb"+i).value.trim();
  13.         orden[i] = document.getElementById("orden"+i).value;
  14.         if (!patronNaN.text(orden[i])) {
  15.             alert("el campo de orden debe ser num\u00e9rico");
  16.             return false;
  17.         }
  18.         if (ape.length == 0 || nomb.length == 0) {
  19.             alert("No ha proporcionado informaci\u00f3n suficiente en el campo de Autores");
  20.             return false;
  21.         }
  22.     }
  23.    
  24.     titulo = document.getElementById("titulo").value.trim();
  25.     anio = document.getElementById("anio").value.trim();
  26.     editor = document.getElementById("editor").value.trim();
  27.     tp = document.getElementById("tp").selectedIndex;
  28.     if (titulo.length == 0 || anio.length == 0 || editor.length == 0 || tp == 0) {
  29.         alert("No ha proporcionado informaci\u00f3n suficiente en el campo de Informaci\u00f3n");
  30.         return false;
  31.     }
  32.     return true;
  33. }

En concreto la parte del array sería:

Código Javascript:
Ver original
  1. // JavaScript Document
  2. function valid() {
  3.     var patronNaN = /^[0-9]+$/;
  4.     if (pos == 0) {
  5.         alert("No ha seleccionado ning\u00fan autor");
  6.         return false;
  7.     }
  8.     var orden=new Array();
  9.     for (i=1;i<=pos;i++) {
  10.         orden[i] = document.getElementById("orden"+i).value;
  11.         if (!patronNaN.text(orden[i])) {
  12.             alert("el campo de orden debe ser num\u00e9rico");
  13.             return false;
  14.         }
  15.     }
  16.     return true;
  17. }

hasta donde llego se que el error debe estar en la linea:
Código Javascript:
Ver original
  1. orden[i] = document.getElementById("orden"+i).value;

Gracias de antemano. A ver si otros ojos son capaces de ver en dónde me estoy equivocando. Y si me pueden dar una pista de como comprobar que son diferentes los elementos del array, sería estupendo.

Saludos