error al momento de ejecutar un JS

Junior Gabriel
01 de Junio del 2004
A ver si alguien me puede ayudar, tengo un prolema cuando ejecuto un archivo de Validacion de nombres me marca el siguiente error
Error:'nombre.value' is null or not an object.
estube investigando y al parecer dice que tengo 2 Id en un HTML o algo asi, me podrian ayudar. aqui les paso el codigo del Archivo .js

function validanom(Contratos){
if (Contratos.nombre.value.length < 2){
alert("Escriba por lo menos 3 caracteres en el campo "Nombre".");
Contratos.nombre.focus();
return (false);
}
var checknombreOK = "ABCDEFGHIJKLMNĐOPQRSTUVWXYZ┴╔═Ë┌" + "abcdefghijklmn˝opqrstuvwxyzßÚݡ˙ ";
var checknombreStr = Contratos.nombre.value;
var allValidnombre = true;
for (i = 0; i < checknombreStr.length; i++)
{
ch = checknombreStr.charAt(i);
for (j = 0; j < checknombreOK.length; j++)
if (ch == checknombreOK.charAt(j))
break;
if (j == checknombreOK.length)
{
allValidnombre = false;
break;
}
}
if (!allValidnombre) {
alert("Escriba sˇlo letras en el campo "Nombre".");
Contratos.nombre.focus();
return (false);
}
}

scriptman
01 de Junio del 2004
Antes, para referenciar al valor de un Campo de un formulario, en IE por ejemplo, bastaba con poner idDelElemento.value, actualmente necesitas hacerlo de la forma correcta: la forma antigua, soportada por los navegadores viejitos (4.x) y nuevos seria:
document.NombreDelForm.NombreDelCampo.value;

o bien la "nueva" forma (DOM), soportada por los navegadores de un par de a˝os para aca:
document.getElementById("idDelCampo").value;

En tu ejemplo pones solo
Contratos.nombre.value.length

agrega "document." antes... (supongo que Contratos es el nombre del FORM)

Saludos, scriptman.
.::Apoya el software libre::.