Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/06/2005, 09:20
kepawe
 
Fecha de Ingreso: agosto-2004
Mensajes: 157
Antigüedad: 19 años, 9 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