validar caja de texto para que primer caracter sea una letra

publicado por: Anonymous

Tengo un formulario en php para un registro de usuario, y estoy validando los input type text con javascript

Existe alguna funcion en javascript que haga que el primer caracter a ingresar en una caja de texto sea obligatoriamente una letra? por ahora tengo validacion a cajas de texto solo letras y solo numeros, tambien que la primera letra a introducir se coloque en mayuscula asi el usuario la coloque miniscula, pero quisiera validar una caja de texto a que cuando vayan a escribir, sea obligatorio al principio comenzar con una letra y ya luego si pueden ser numeros y asi. se puede?

para la validacion de numeros y letras hice lo siguiente:

function soloLetras(e) {
    key = e.keyCode || e.which;
    tecla = String.fromCharCode(key).toString();
    letras = " áéíóúabcdefghijklmnñopqrstuvwxyzÁÉÍÓÚABCDEFGHIJKLMNÑOPQRSTUVWXYZ";//Se define todo el abecedario que se quiere que se muestre.
    especiales = [8, 9, 37, 39, 46, 6]; //Es la validación del KeyCodes, que teclas recibe el campo de texto.

    tecla_especial = false
    for(var i in especiales) {
        if(key == especiales[i]) {
            tecla_especial = true;
            break;
        }
    }

    if(letras.indexOf(tecla) == -1 && !tecla_especial){
alert('Este campo solo permite letras');
        return false;
      }
}


function SoloNumeros(evt){
 if(window.event){//asignamos el valor de la tecla a keynum
  keynum = evt.keyCode; //IE
 }
 else{
  keynum = evt.which; //FF
 } 
 //comprobamos si se encuentra en el rango numérico y que teclas no recibirá.
 if((keynum > 47 && keynum < 58) || keynum == 8 || keynum == 13 || keynum == 6 ){
  return true;
 }
 else{
  return false;
 }
}

y para aplicarlo en las cajas de texto, les agregue siempre al final del required lo siguiente:

SI ES LETRAS ---> required onkeypress="return soloLetras(event);" onkeyup="this.value = this.value.charAt(0).toUpperCase() + this.value.slice(1);" class="mayusculas" maxlength="15"  

  SI ES NUMEROS--->  onKeyPress="return SoloNumeros(event);"

Ahora como quiero colocar un campo “direccion”, deseo que el usuario al introducirla sea siempre una letra al principio y no un numero, por eso mi consulta.

solución

Creo que esto es lo que buscas, lo que hace es contar cuantos caracteres tiene el input, si esta vacio permite meter letras, si ya es mayor que 1 te deja meter numeros.

Espero te sirva, saludos desde Honduras.

_x000D_

_x000D_

  function soloLetras(e) {_x000D_
    textoArea = document.getElementById("cajaTexto").value;_x000D_
    var total = textoArea.length;_x000D_
    if (total == 0) {_x000D_
      key = e.keyCode || e.which;_x000D_
      tecla = String.fromCharCode(key).toString();_x000D_
      letras = " áéíóúabcdefghijklmnñopqrstuvwxyzÁÉÍÓÚABCDEFGHIJKLMNÑOPQRSTUVWXYZ"; //Se define todo el abecedario que se quiere que se muestre._x000D_
      especiales = [8, 9, 37, 39, 46, 6]; //Es la validación del KeyCodes, que teclas recibe el campo de texto._x000D_
_x000D_
      tecla_especial = false_x000D_
      for (var i in especiales) {_x000D_
        if (key == especiales[i]) {_x000D_
          tecla_especial = true;_x000D_
          break;_x000D_
        }_x000D_
      }_x000D_
_x000D_
      if (letras.indexOf(tecla) == -1 && !tecla_especial) {_x000D_
        return false;_x000D_
        alert('No puedes comenzar escribiendo numeros');_x000D_
      }_x000D_
    }_x000D_
  }_x000D_
_x000D_
function SoloNumeros(evt) {_x000D_
  if (window.event) { //asignamos el valor de la tecla a keynum_x000D_
    keynum = evt.keyCode; //IE_x000D_
  } else {_x000D_
    keynum = evt.which; //FF_x000D_
  }_x000D_
  //comprobamos si se encuentra en el rango numérico y que teclas no recibirá._x000D_
  if ((keynum > 47 && keynum < 58) || keynum == 8 || keynum == 13 || keynum == 6) {_x000D_
    return true;_x000D_
  } else {_x000D_
    return false;_x000D_
  }_x000D_
}

_x000D_

<label>Letras</label> <input type="text" id="cajaTexto" required onkeypress="return soloLetras(event);" onkeyup="this.value = this.value.charAt(0).toUpperCase() + this.value.slice(1);" class="mayusculas" maxlength="15" ">_x000D_
_x000D_
   <label>Numeros</label> <input onKeyPress="return SoloNumeros(event); "/>

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *