Arrays y matrices

La duda es que no conozco el manejo(declaración y asignación de valor) de las matrices o arrays de arrays en javascript. El ejercicio, aunque sin sentido porque se debería hacer con ficheros, consiste en obtener 2 datos de un formulario, nombre y apellidos, y comprobar si estos ya existen en el/los arrays al efecto. Si existen, se muestra un mensaje de error y, si no, se añaden al array.
Como no se declarar matrices, he usado 2 arrays para cada dato y ambos van a tener el mismo índice para comparar los datos completos.
El script que he puesto es el siguiente:
<script language="javascript">
function validacion(formulario) {
var Nombre = new Array()
var Apellidos = new Array()
var contador
if (formulario.elements[0].value == "" || formulario.elements[1].value == ""){
alert ("No puede dejar ninguno de los campos vacios")
return false
}else{
if (Nombre.length != 0){
for (contador = 0; contador < Nombre.length; contador++){
if (formulario.elements[0].value == persona.Nombre[contador] && formulario.elements[0].value == persona.Apellidos[contador]){
alert("Lo siento pero ese nombre ya está cogido")
break
return false
}
}
}
Nombre[Nombre.length]=formulario.elements[0].value
Apellidos[Apellidos.length]=formulario.elements[1].value
return true
}
}
</script>
Y el problema es que al salir de la función, los arrays están vacíos, no se si porque no los introduce o porque al salir de la función y regresar al formulario hace un refresh y se pierden.
Agradecería enormemente si alguien me dijese que le pasa al script o bien, en el caso de que haga un refresh, cómo pasar los arrays en la actualización.
Si no es demasiado engorroso, me gustaría cono cer el código usando una matriz bidimensional para los 2 datos.
1

1 Respuesta

106.550 pts. Trabajo en desarrollo web en general, html, css, etc
El problema viene de la declaración de las variables.
function validacion(formulario) {
var Nombre = new Array()
var Apellidos = new Array()
var contador
Al declararlas como "var" dentro de una función, las declaras como variables LOCALES, es decir, cuando retornas de la función, se pierden!
Hazlas globales:
1.- Declarandolas FUERA de la funcion
var Nombre = new Array()
var Apellidos = new Array()
function validacion(formulario) {
var contador
2.- NO declarandolas como "var"
function validacion(formulario) {
Nombre = new Array()
Apellidos = new Array()

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas