Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Cambiar texto de un label

Estas en el tema de Cambiar texto de un label en el foro de Javascript en Foros del Web. Quiero en mi pagina cambiar el texto de un label cuando doy click en un boton de un formulario, el codigo q hice me lo ...
  #1 (permalink)  
Antiguo 18/03/2013, 13:06
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
Cambiar texto de un label

Quiero en mi pagina cambiar el texto de un label cuando doy click en un boton de un formulario, el codigo q hice me lo cambia, pero al momento me vuelve a poner el texto anterior. Aki les dejo el codigo

/////Codigo script en el head

<script type="text/javascript">
function validate() {
var user = document.Autentificacion.Nombre.value;
var pass = document.Autentificacion.Password.value;
if (user.length == 0 && pass.length == 0) {
document.getElementById("Estado").innerHTML = "Usuario y Contraseña Requerida"; }
else if (user.length == 0) {
document.getElementById("Estado").innerHTML = "Usuario Requerido"; }
else if (pass.length == 0) {
document.getElementById("Estado").innerHTML = "Contraseña Requerida"; }
}
</script>

/////Codigo html

<div id="formulario">
<form name="Autentificacion">
<p>Nombre de Usuario&nbsp; <input type="text" name="Nombre" class="inputEntrada"/></p>
<p>Contrase&ntilde;a&nbsp; <input type="password" name="Password" class="inputEntrada"/></p>
<input type="submit" name="Submit" value="Entrar" onclick="validate()"/>
</form>
<div id="estado">
<label id="Estado">Estado de Cuenta</label>
</div>
</div>
  #2 (permalink)  
Antiguo 18/03/2013, 13:19
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Cambiar texto de un label

El problema básico es que estás ejecutando un onclick sobre un input submit, y tras el click el html hace un return de la acción natural del submit, es decir, procesa el form.
Alternativas, llamá la función con el evento onsubmit y return, en el form

<form action="#" onsubmit="return validate();">

y por cada condiciójn no válida, devolvés false

Código:
function validate() {
 var user = document.Autentificacion.Nombre.value;
 var pass = document.Autentificacion.Password.value;
 if (user.length == 0 && pass.length == 0) {
 document.getElementById("Estado").innerHTML = "Usuario y Contraseña Requerida";
return false; }
 else if (user.length == 0) {
 document.getElementById("Estado").innerHTML = "Usuario Requerido"; return false;}
 else if (pass.length == 0) {
 document.getElementById("Estado").innerHTML = "Contraseña Requerida"; return false;}
 }
si pasa la validación, el formulario sigue su curso y se envía

En otros casos, en los que no estás procensando un form, sino simplemente haciendo una validación. usás simplemente un input type button con onclick="funcion();"

Claro, esto es siempre y cuando trabajes dentro de un form.

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 18/03/2013, 21:18
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Cambiar texto de un label

Me sirvio, pero la primera vez que le doy al boton me hace lo mismo, a la 2da es que me deja el texto que cambio en la primera validacion y solo me funciona con el primer if con los otros me vuelve a poner el mensaje original, aki va el codigo como me quedo luego del arreglo:

<script type="text/javascript">
function validate() {
var user = document.Autentificacion.Nombre.value;
var pass = document.Autentificacion.Password.value;
if (user.length == 0 && pass.length == 0) {
document.getElementById("Estado").innerHTML = "Usuario y Contraseña Requerida";
return false;}
else if (user.length == 0) {
document.getElementById("Estado").innerHTML = "Usuario Requerido";
return false;}
else if (pass.length == 0) {
document.getElementById("Estado").innerHTML = "Contraseña Requerida";
return false;}
}
</script>


<div id="formulario">
<form name="Autentificacion" action="#" onsubmit="validate();">
<p>Nombre de Usuario&nbsp; <input type="text" name="Nombre" class="inputEntrada"/></p>
<p>Contrase&ntilde;a&nbsp; <input type="password" name="Password" class="inputEntrada"/></p>
<input type="submit" name="Submit" value="Entrar"/>
</form>
<div id="estado">
<label id="Estado">Estado de Cuenta</label>
</div>
</div>
  #4 (permalink)  
Antiguo 18/03/2013, 21:21
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Cambiar texto de un label

me funciona pero a la segunda vez que pincho el boton, y solo me funciona con el if de la 1ra validacion, con los otros me pasa lo mismo que les habia planteado, lo q ahora me cambia el texto y luego de forma rapida creo que me carga la pagina de nuevo, por lo q me pone el texto original del label, asi me quedo el codigo

<script type="text/javascript">
function validate() {
var user = document.Autentificacion.Nombre.value;
var pass = document.Autentificacion.Password.value;
if (user.length == 0 && pass.length == 0) {
document.getElementById("Estado").innerHTML = "Usuario y Contraseña Requerida";
return false;}
else if (user.length == 0) {
document.getElementById("Estado").innerHTML = "Usuario Requerido";
return false;}
else if (pass.length == 0) {
document.getElementById("Estado").innerHTML = "Contraseña Requerida";
return false;}
}
</script>


<div id="formulario">
<form name="Autentificacion" action="#" onsubmit="validate();">
<p>Nombre de Usuario&nbsp; <input type="text" name="Nombre" class="inputEntrada"/></p>
<p>Contrase&ntilde;a&nbsp; <input type="password" name="Password" class="inputEntrada"/></p>
<input type="submit" name="Submit" value="Entrar"/>
</form>
<div id="estado">
<label id="Estado">Estado de Cuenta</label>
</div>
</div>
  #5 (permalink)  
Antiguo 18/03/2013, 21:24
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
Cambiar texto de label II

Quiero en mi pagina cambiar el texto de un label cuando doy click en un boton de un formulario, el codigo q hice me lo cambia, pero al momento me vuelve a poner el texto anterior. Aki les dejo el codigo

/////Codigo script en el head

<script type="text/javascript">
function validate() {
var user = document.Autentificacion.Nombre.value;
var pass = document.Autentificacion.Password.value;
if (user.length == 0 && pass.length == 0) {
document.getElementById("Estado").innerHTML = "Usuario y Contraseña Requerida"; }
else if (user.length == 0) {
document.getElementById("Estado").innerHTML = "Usuario Requerido"; }
else if (pass.length == 0) {
document.getElementById("Estado").innerHTML = "Contraseña Requerida"; }
}
</script>

/////Codigo html

<div id="formulario">
<form name="Autentificacion">
<p>Nombre de Usuario&nbsp; <input type="text" name="Nombre" class="inputEntrada"/></p>
<p>Contrase&ntilde;a&nbsp; <input type="password" name="Password" class="inputEntrada"/></p>
<input type="submit" name="Submit" value="Entrar" onclick="validate()"/>
</form>
<div id="estado">
<label id="Estado">Estado de Cuenta</label>
</div>
</div>
Responder Citando

LUEGO DE LA RESPUESTA DE EMPREAR

me funciona pero a la segunda vez que pincho el boton, y solo me funciona con el if de la 1ra validacion, con los otros me pasa lo mismo que les habia planteado, lo q ahora me cambia el texto y luego de forma rapida creo que me carga la pagina de nuevo, por lo q me pone el texto original del label, asi me quedo el codigo

<script type="text/javascript">
function validate() {
var user = document.Autentificacion.Nombre.value;
var pass = document.Autentificacion.Password.value;
if (user.length == 0 && pass.length == 0) {
document.getElementById("Estado").innerHTML = "Usuario y Contraseña Requerida";
return false;}
else if (user.length == 0) {
document.getElementById("Estado").innerHTML = "Usuario Requerido";
return false;}
else if (pass.length == 0) {
document.getElementById("Estado").innerHTML = "Contraseña Requerida";
return false;}
}
</script>


<div id="formulario">
<form name="Autentificacion" action="#" onsubmit="validate();">
<p>Nombre de Usuario&nbsp; <input type="text" name="Nombre" class="inputEntrada"/></p>
<p>Contrase&ntilde;a&nbsp; <input type="password" name="Password" class="inputEntrada"/></p>
<input type="submit" name="Submit" value="Entrar"/>
</form>
<div id="estado">
<label id="Estado">Estado de Cuenta</label>
</div>
</div>
  #6 (permalink)  
Antiguo 18/03/2013, 21:43
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Cambiar texto de label II

Yo te dije que pongas esto
Código:
 <form name="Autentificacion" action="#" onsubmit="return validate();">
NO esto
Código:
 <form name="Autentificacion" action="#" onsubmit="validate();">
Y no es necesario repetir el tema, aunque lo hayas dado por solucionado, tus nuevas consultas van a seguir llegando
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 19/03/2013, 01:11
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Cambiar texto de un label

Hola:

He desmarcado el tema como solucionado (que según parece, para tí no lo está, ya que sigues preguntando), y unido los temas... (No nos des tanto trabajo)...

Aparte de la respuesta que te ha dado emprear, la etiqueta label tiene su significado semántico activando/dando el foco a los controles asociados, así que si tu intención es otra, deberías usar otro elemento (un simple span, por ejemplo)...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 19/03/2013, 08:29
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Cambiar texto de un label

Ya me funciono, gracias emprear y disculpen las molestias por crear otro tema, es q le di marcar como resuelto y no sabia como desmarcalro, es que soy nuevo en el foro
Salu2s

Etiquetas: formulario, funcion, html, input, label
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 04:45.