Cómo pongo campo de texto para números y letras

publicado por: Anonymous

Estoy haciendo el software para un parqueadero, pero necesito que ésta celda me permita guardar la placa del vehículo (carro/moto) y que sean sólo caracteres de letras y números, que no acepte valores distintos.

_x000D_

_x000D_

<tr>_x000D_
    <!-- Caja de texto para la placa -->_x000D_
    <td id="TituloTablaVerde">_x000D_
        <b><i>Placa:</i>_x000D_
    </td>_x000D_
_x000D_
    <td>_x000D_
        <input type="text" name="placa" required minlength="6" maxlength="10" placeholder="Placa" onkeyup="javascript:this.value=this.value.toUpperCase();">_x000D_
    </td>_x000D_
</tr>

_x000D_

_x000D_

_x000D_

Otra cosa y es que necesito que el campo quede sólo para letras mayúsculas, en la parte de onkeyup="javascript:this.value=this.value.toUpperCase(); me las cambia en tiempo real, osea que si empieza a escribir en minúsculas, el campo empieza a convertirla en mayúsculas (la idea es que lo convierta sin mostrar el proceso.

solución

Esta solución tiene dos partes: por un lado, la estética, para que los caracteres aparezcan en mayúsculas aunque se escriban en minúsculas. Pero a la vez se transforman realmente a mayúsculas y no permite escribir nada que no sea letras del alfabeto latino estándar (sin acentos ni ñ) o números. Sí que se ve cómo se borran los caracteres no válidos, pero no encuentro ninguna solución a esa parte.

_x000D_

_x000D_

function filterNonAphaNumeric(str) {_x000D_
  let code, i, len,result='';_x000D_
_x000D_
  for (i = 0, len = str.length; i < len; i++) {_x000D_
    code = str.charCodeAt(i);_x000D_
    if ((code > 47 && code < 58) || // numeric (0-9)_x000D_
        (code > 64 && code < 91) || // upper alpha (A-Z)_x000D_
        (code > 96 && code < 123)) { // lower alpha (a-z)_x000D_
      result+=str.charAt(i);_x000D_
    }_x000D_
  }_x000D_
  return result;_x000D_
};_x000D_
_x000D_
function onKeyUpHandler(event) {_x000D_
  let value=this.value.toUpperCase();_x000D_
  if (value) {_x000D_
    this.value=filterNonAphaNumeric(value)_x000D_
  }_x000D_
}_x000D_
_x000D_
let input = document.getElementById('placa');_x000D_
input.addEventListener('keyup',onKeyUpHandler);

_x000D_

.uppercase {_x000D_
  text-transform:uppercase;_x000D_
}

_x000D_

<tr>_x000D_
  <!-- Caja de texto para la placa -->_x000D_
  <td id="TituloTablaVerde"><b><i>Placa:</i></td>_x000D_
    	<td><input type="text" name="placa" id="placa" required minlength="6" maxlength="10" placeholder="Placa" class="uppercase"></td>_x000D_
    </tr>

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

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