Foros del Web » Programando para Internet » Javascript »

Convertir a mayusculas

Estas en el tema de Convertir a mayusculas en el foro de Javascript en Foros del Web. Hola amigos como puedo validar un formulario donde si tienen activado minusculas cuando escriban dentro de la caja de textos del formulario escriban en mayusculas. ...
  #1 (permalink)  
Antiguo 23/06/2005, 08:14
 
Fecha de Ingreso: marzo-2005
Mensajes: 372
Antigüedad: 19 años, 1 mes
Puntos: 1
Convertir a mayusculas

Hola amigos como puedo validar un formulario donde si tienen activado minusculas cuando escriban dentro de la caja de textos del formulario escriban en mayusculas.

esi mi problema que tengo es que si tienen activado las minusculas o mayusculas escriba en la caja de texto mayusculas.
  #2 (permalink)  
Antiguo 23/06/2005, 12:40
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola dancresi:

Los objetos tipo string tienen un método para pasar a mayúsculas (y también a minúsculas). texto.toUpperCase(), aunque se trata de una conversión de texto "a la inglesa", para eñes, acentos y otras yerbas habría que implementarlo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 24/06/2005, 09:20
 
Fecha de Ingreso: agosto-2004
Mensajes: 157
Antigüedad: 19 años, 8 meses
Puntos: 5
Hola dancresi y caricatos.

El código que te envío escribe en mayúsculas, lo he probado en Mozilla, en teoría debería funcionar en Firefox también, también a partir de Opera 8 y en I.E, la idea del código para IE es de JavierB, por si las mosca he utilizado el método tu toUppercase() , hasta donde yo se sí convierte los caracteres latinos a mayúsculas sin ningún problema,al menos en los anteriores navegadores mencionados, también un ejemplo de como validar si está en mayúsculas al hacer submit, falta comprobar si el campo está vacío y recortar los espacios en ambos lados de la cadena, pero se puede poner sin ningún problema, en la FAQ podrás encontrar varios ejemplos, bueno son muchas comprobaciones pero nunca están demás, ya que por ejemplo si el usuario pega un texto en minúsculas, ya se saltaría el código que impide escribir minúsculas mientras se escribe.
Código:
<html>
<head>
<title>Escribir solo en  mayúsulas</title>
<script type="text/javascript">
function validate_form(current_form){
 var ctr_error = 0
	for(var ctr = 0; c_form = current_form[ctr];ctr++){
		if(c_form.type == "text"){
		  if(c_form.value.search(/[a-zñá-ú]/) == -1) {
		  alert("Todas el texto está en mayúsculas\n" +
		  "en el campo " + c_form.name);
		  
		  }
		  else {
		  alert("El texto no está escrito en su totalidad en mayúsculas\n" +
		  "en el campo " + c_form.name);
		  
		  ctr_error++;
		  }
		}
	
	}
	if(ctr_error > 0) return false;
	else return true;



}
function pulsar(e) {
  tecla = (document.all) ? e.keyCode : e.which;
  if(tecla == 9 || tecla == 0) return false;
  if(tecla == 8) return true;
  if(window.Event){
      var pst = e.currentTarget.selectionStart;
      var string_start = e.currentTarget.value.substring(0,pst);
      var string_end = e.currentTarget.value.substring(pst ,e.currentTarget.value.length);
      e.currentTarget.value = string_start+ String.fromCharCode(tecla).toUpperCase()+ string_end;
      e.currentTarget.selectionStart = pst + 1;
      e.currentTarget.selectionEnd = pst + 1;
      e.stopPropagation();
      return false;
  }
  else if (window.event){
  
  return e.keyCode =   String.fromCharCode( e.keyCode ).toUpperCase().charCodeAt(0);
  }
}
</script>
</head>
<body>
<form name="form1" onsubmit = "return validate_form(this)">
Texto 1 <br>
<input type="text" name="texto1" size="50" onkeypress="return pulsar(event)" onblur="this.value = this.value.toUpperCase()"/>
<br>
Texto 2 <br>
<input type="text" name="texto2" size="50" />
<input type="submit" value="enviar">
</form>
</body>
</html>
Espero que te sirva.
Saludos
  #4 (permalink)  
Antiguo 24/06/2005, 11:29
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Como había contestado en un mensaje anterior, se puede hacer más fácilmente con css:
Código:
<html>
<head>
<style type="text/css">
.mayus {
	text-transform: uppercase;	
}
</style>
</head>
<body>
<input type="text" class="mayus" />
</body>
</html>
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 24/06/2005, 12:13
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola xknown

Lo malo de hacerlo con Css es que cuando se envíe el formulario lo enviará en minúsculas.

Saludos,
  #6 (permalink)  
Antiguo 24/06/2005, 13:55
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Tienes razón, pero eso se puede manejar con más fácilidad en el lenguaje que se utilize en el servidor.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #7 (permalink)  
Antiguo 25/06/2005, 03:25
 
Fecha de Ingreso: agosto-2004
Mensajes: 157
Antigüedad: 19 años, 8 meses
Puntos: 5
Hola de nuevo.

xknown, tienes razón, aparte de las razones que ya has dado, es soportado por la mayoría de los navegadores.

Saludos: adios:
  #8 (permalink)  
Antiguo 25/06/2005, 03:31
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Cita:
Iniciado por xknown
Tienes razón, pero eso se puede manejar con más fácilidad en el lenguaje que se utilize en el servidor.
Pues también es verdad. Si estoy hablando de mandar el formulario, se supone que tengo algún lenguaje para recibirlo Es que a veces se me atasca la neurona.

Saludos,
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




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