Aqui te paso una función en la que puedes controlar el rango de caracteres que admite un campo, incluso da la posibilidad de añadir caracteres a los que hay definidos. Se trata de una función booleana que devuelve true si lo que hay en un campo es un valor permitido y false en caso contrario.
Código PHP:
function validaCampoTexto(campo, caract_extra, tipoCampo, nulo) {
if (nulo == 1 && campo.value == "") {
alert("ERROR: No puede dejar este campo vacio");
return false;
}
var cad1;
var cad2;
var ubicacion;
var enter = "\n";
switch(tipoCampo){
case 1: // Campo de texto
var caracteres = "abcdefghijklmnopqrstuvwxyzñ1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZÑ" + String.fromCharCode(13) + enter + caract_extra;
break;
case 2: // Campo numerico
var caracteres = "1234567890" + caract_extra;
break;
}
var continuar = true;
var contador = 0
for (var i=0; i < campo.value.length; i++) {
ubicacion = campo.value.substring(i, i + 1);
if (caracteres.indexOf(ubicacion) != -1) {
contador++;
} else {
alert("ERROR: No se acepta el caracter '" + ubicacion + "'.");
cad1 = campo.value.substring(0, campo.value.indexOf(ubicacion));
cad2 = campo.value.substring(campo.value.indexOf(ubicacion)+1);
campo.value = cad1 + cad2;
campo.focus();
continuar = false;
}
}
return continuar;
}
- En el parametro "campo" le pasamos el campo que tenemos que validar.
- "caract_extra" contiene los caracteres adicionales que queremos añadir a los que hemos definido dentro de la función como posibles dentro del campo.
- "tipoCampo" es un valor numérico que nos dice si es numérico (2) o de texto (1), con el finde definir los caracteres válidos para cada uno de ellos.
- "nulo" indica si se puede dejar el campo vacío (el valor 1 indica que es un campo obligatorio, cualquier otro valor permite dejar vacio el campo)
Espero que te sirva