Foros del Web » Programando para Internet » Javascript »

validacion de al menos una letra o numero

Estas en el tema de validacion de al menos una letra o numero en el foro de Javascript en Foros del Web. Hola a todos. Tengo un formulario donde compruebo que los campos tipo text no queden vacios, pero si en cada uno de ellos pulso espacio, ...
  #1 (permalink)  
Antiguo 15/12/2009, 10:04
 
Fecha de Ingreso: enero-2006
Mensajes: 33
Antigüedad: 18 años, 3 meses
Puntos: 0
validacion de al menos una letra o numero

Hola a todos.

Tengo un formulario donde compruebo que los campos tipo text no queden vacios, pero si en cada uno de ellos pulso espacio, la funcion no se ejecuta y me envia el formulario pero en blanco.

Como puedo pedirle al form que al menos obligue a pedir una letra o numero???

Esta es la funcion que estoy utilizando:

<script language="JavaScript" type="text/javascript">

function fixElement(element, message) {
alert(message);
element.focus();
}
function verifica(form) {
var passed = false;

if (form.nombrecli.value == "") {
fixElement(form.nombrecli, "Por favor, introduzca su nombre.");
return passed;
}
if (form.apellidoscli.value == "") {
fixElement(form.apellidoscli, "Por favor, introduzca sus apellidos.");
return passed;
}
if (form.numdoccli.value == "") {
fixElement(form.numdoccli, "Por favor, introduzca el número del documento.");
return passed;
}
else {
passed = true;
}
return passed;
}
</script>

Muchas gracias por vuestra ayuda!!!
  #2 (permalink)  
Antiguo 15/12/2009, 10:20
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: validacion de al menos una letra o numero

Puedes usar las siguientes funciones para eliminar espacios en blanco antes de comprovar el valor del campo:

Código:
function Trim( str ) {
var resultStr = "";
resultStr = TrimLeft(str);
resultStr = TrimRight(resultStr);
return resultStr;
}

function TrimLeft( str ) {
var resultStr = "";
var i = len = 0;
if (str+"" == "undefined" || str == null)
return "";
str += "";

if (str.length == 0)
resultStr = "";
else {
len = str.length;
while ((i <= len) && (str.charAt(i) == " "))
i++;
resultStr = str.substring(i, len);
}
return resultStr;
}

function TrimRight( str ) {
var resultStr = "";
var i = 0;
if (str+"" == "undefined" || str == null)
return "";
str += "";
if (str.length == 0)
resultStr = "";
else {
i = str.length - 1;
while ((i >= 0) && (str.charAt(i) == " "))
i--;
resultStr = str.substring(0, i + 1);
}

return resultStr;
}

La funcion TRim quita los espacios en blancos que existan al inicio y al final de una cadena (usando las funciones TrimRight y TrimLeft).

Después puedes usar las funciones en la validación así:

Código:
function valida_envia(){
nom = document.Formulario.nombre.value; if ( Trim(form.numdoccli.value == "")=="" ){
alert ("Error"); return;
}
}
Espero que te sirva.
  #3 (permalink)  
Antiguo 15/12/2009, 12:37
 
Fecha de Ingreso: enero-2006
Mensajes: 33
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: validacion de al menos una letra o numero

Hola Oswide...

Pondo el código y sustituyo la funcion valida por la que me das tu y no me hace nada, la funcion no se ejecuta..

no se que puede ser...
  #4 (permalink)  
Antiguo 15/12/2009, 12:42
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: validacion de al menos una letra o numero

Lo que tienes que usar son las funciones de trim en tu funcion de validar. La funcion de valida_envia es solo un ejemplo de como usarlas.
  #5 (permalink)  
Antiguo 15/12/2009, 14:25
 
Fecha de Ingreso: enero-2006
Mensajes: 33
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: validacion de al menos una letra o numero

si si, y es lo que hago, cambio simplemente el nombre del campo y añado el nuevo código, pero me sigue sin controlar el campo del nombre. te paso como lo tengo:

<script language="javascript" type="text/javascript">

function Trim( str ) {
var resultStr = "";
resultStr = TrimLeft(str);
resultStr = TrimRight(resultStr);
return resultStr;
}

function TrimLeft( str ) {
var resultStr = "";
var i = len = 0;
if (str+"" == "undefined" || str == null)
return "";
str += "";

if (str.length == 0)
resultStr = "";
else {
len = str.length;
while ((i <= len) && (str.charAt(i) == " "))
i++;
resultStr = str.substring(i, len);
}
return resultStr;
}

function TrimRight( str ) {
var resultStr = "";
var i = 0;
if (str+"" == "undefined" || str == null)
return "";
str += "";
if (str.length == 0)
resultStr = "";
else {
i = str.length - 1;
while ((i >= 0) && (str.charAt(i) == " "))
i--;
resultStr = str.substring(0, i + 1);
}

return resultStr;
}

</script>


<script language="JavaScript" type="text/javascript">

function fixElement(element, message) {
alert(message);
element.focus();
}
function verifica(form) {
var passed = false;

nom = document.Formulario.nombrecli.value;
if ( Trim(form.nombrecli.value == "")=="" ){alert ("Error");
return;}

//if (form.nombrecli.value == "") {
//fixElement(form.nombrecli, "Por favor, introduzca su nombre.");
//return passed;
//}


// esto de abajo aun no lo he modificado


if (form.apellidoscli.value == "") {
fixElement(form.apellidoscli, "Por favor, introduzca sus apellidos.");
return passed;
}
if (form.numdoccli.value == "") {
fixElement(form.numdoccli, "Por favor, introduzca el número del documento.");
return passed;
}
if (form.fecha.value == "") {
fixElement(form.fecha, "Por favor, introduzca su fecha de nacimiento.");
return passed;
}
if (form.paiscli.value == "") {
fixElement(form.paiscli, "Por favor, introduzca su nacionalidad.");
return passed;
}
if (form.dircli.value == "") {
fixElement(form.dircli, "Por favor, introduzca su dirección completa.");
return passed;
}
if (form.localidad.value == "") {
fixElement(form.localidad, "Por favor, introduzca la localidad.");
return passed;
}
if (form.provincia.value == "") {
fixElement(form.provincia, "Por favor, introduzca la provincia.");
return passed;
}
if (form.cp.value == "") {
fixElement(form.cp, "Por favor, introduzca el código postal.");
return passed;
}
if (form.pais.value == "") {
fixElement(form.pais, "Por favor, introduzca el país.");
return passed;
}
if (form.mail.value == "") {
fixElement(form.mail, "Por favor, introduzca su correo electrónico.");
return passed;
}
if (form.tlfno.value == "") {
fixElement(form.tlfno, "Por favor, introduzca su teléfono.");
return passed;
}
if (form.profesion.value == "") {
fixElement(form.profesion, "Por favor, introduzca su profesión.");
return passed;
}
if (form.verflopd.checked == "") {
fixElement(form.verflopd, "Por favor, debe aceptar la cláusula de protección de datos.");
return passed;
}
else {

passed = true;
}



return passed;




}
</script>
  #6 (permalink)  
Antiguo 15/12/2009, 16:40
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: validacion de al menos una letra o numero

Creo que me equivoqué cuando puse el código. Te pongo un ejemplo en apellidos a ver si funciona:

Código:
if ( Trim(form.nombrecli.value) == "" ){
    alert ("Error");
    return false;
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:55.