Foros del Web » Programando para Internet » Javascript »

No agrega atributo a tag

Estas en el tema de No agrega atributo a tag en el foro de Javascript en Foros del Web. Hola, estoy validando un formulario con jsvalidate y resulta que el select opc1 cuando se selecciona la opcion Otras hace aparecer automaticamente un textbox opc2 ...
  #1 (permalink)  
Antiguo 09/06/2008, 15:25
 
Fecha de Ingreso: julio-2006
Mensajes: 114
Antigüedad: 17 años, 10 meses
Puntos: 0
No agrega atributo a tag

Hola, estoy validando un formulario con jsvalidate y resulta que el select opc1 cuando se selecciona la opcion Otras hace aparecer automaticamente un textbox opc2, entonces cuando selecciono esta opcion quisiera que validara este textbox y bote un mensaje de error si no esta lleno, mientras que si esta oculto no lo valide.
Para esto estoy trabajando con setAttribute("class","jsrequired") o setAttribute("className","jsrequired") (segun el navegador), pero no logro que salga el error en pantalla cuando ese textbox se muestra.

He probado asi:

Código HTML:
<html>
<head>
	<script type="text/javascript" language="javascript" src="jsvalidate/scriptaculous/lib/prototype.js"></script>
	<script type="text/javascript" language="javascript" src="jsvalidate/scriptaculous/src/scriptaculous.js"></script>
	<script type="text/javascript" language="javascript" src="jsvalidate/jsvalidate.js"></script>
    <script language="javascript">
	function ver(obj)
	{
		if(obj.options[obj.selectedIndex].text == "Otras")
		{
		 document.formulario.opc2.style.visibility = "visible";
		 document.getElementById("newopc2").setAttribute("class", "jsrequired");
		 document.formulario.opc2.focus();
		}
		else
		{
		 document.formulario.opc2.style.visibility = "hidden";
		 document.getElementById("newopc2").removeAttribute("class");
		 document.formulario.opc2.value = "";
		 document.formulario.opc2.blur();
		}
	}
    </script>
</head>
<body>
<form name="formulario" method="POST">
 <table border=1 width="500">
	  <tr>
	    <td>Unidad</td>
	    <td>
	      <select name="opc1" onChange="ver(this);" class="jsrequired select-notfirst">
			<option value="" selected="selected">[Seleccione su Unidad]</option>
			<option value="UNAL">UNAL</option>
			<option value="UNIP">UNIP</option>
			<option value="Otros">Otras</option>
	      </select>
	    </td>
     <td><input id="newopc2" name="opc2" type="text" style="visibility:hidden" size="50"/></td>
  </tr>
  <tr>
    <td colspan="3" align="center">
    	<input name="leer" type="submit" value="Leer"/>
    	<input name="borrar" type="reset" value="Borrar" />
    </td>
  </tr>
 </table>
</form>
</body>
</html> 
  #2 (permalink)  
Antiguo 10/06/2008, 00:30
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: No agrega atributo a tag

Hola

Prueba con esto, debería funcionar en todos los navegadores:

Código:
document.getElementById("newopc2").className = 'jsrequired';
Saludos,
  #3 (permalink)  
Antiguo 10/06/2008, 00:45
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: No agrega atributo a tag

Hola:

Siempre que tengas que tratar el atributo html class, debes usar con javascript className (la N mayúscula).

Nunca había visto removeAttribute, pero no creo que funcione con los atributos estándar... para quitarlo, tal vez sea mejor darle como valor la cadena vacía...

Código:
document.getElementById("newopc2").className = "jsrequired";
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 10/06/2008, 00:46
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: No agrega atributo a tag

Hola Javi... cuanto tiempo sin chocar

__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 10/06/2008, 00:51
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: No agrega atributo a tag

Hola caricatos, buen choque

No me había dado cuenta de que andabas por aquí, sino estaba claro que lo de className lo tenías que contestar tú

Saludos,
  #6 (permalink)  
Antiguo 10/06/2008, 11:53
 
Fecha de Ingreso: julio-2006
Mensajes: 114
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: No agrega atributo a tag

weno gracias por su ayuda pero aun no me funciona que valide el textbox al enviar el formulario , a que se podría deber???
  #7 (permalink)  
Antiguo 10/06/2008, 22:18
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: No agrega atributo a tag

Hola:

No veo que estés haciendo ninguna validación... la forma de validar un formulario es desde el evento submit, devolviendo false para anular el envío:

Código:
<form onsubmit="return validar(this)" ...>
...y...

function validar(f) {
if (f.opc1.value == "Otros") {
alert("debe rellenar el campo opc2")
return f.opc2.value != "";
}
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 11/06/2008, 11:18
 
Fecha de Ingreso: julio-2006
Mensajes: 114
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo Respuesta: No agrega atributo a tag

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

No veo que estés haciendo ninguna validación... la forma de validar un formulario es desde el evento submit, devolviendo false para anular el envío:

Código:
<form onsubmit="return validar(this)" ...>
...y...

function validar(f) {
if (f.opc1.value == "Otros") {
alert("debe rellenar el campo opc2")
return f.opc2.value != "";
}
}

Saludos
gracias por tu respuesta caricatos, pero estoy validando con jsvalidate una aplicacion ya hecha que me descargue de la web.
Pues lo que quiero es que agrege el nombre de la clase jsrequired que es la que valida, pero no logro que funcione.
He subido mi pagina de ejemplo para que tal ves sea mas ilustrativo.
Resulta que cuando ponga Otras en el segundo select aparezca el texbox y al enviar o pasar a otro campo salga el mensaje de que tiene que estar lleno...espero me puedas ayudar
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 20:11.