
30/06/2009, 21:31
|
 | | | Fecha de Ingreso: junio-2009
Mensajes: 2
Antigüedad: 15 años, 8 meses Puntos: 0 | |
Cambiar evento OnKeyPress según OnClick Hola!
Tengo un problema con el evento OnKeyPress... Lo que tengo:
- Un Combo List con Nacionalidad.
- Un Input con ID. Lo que deseo hacer:
- Al elegir Nacionalidad V - (Venezolano(a)) el Input sólo aceptará números.
- Al elegir Nacionalidad E - (Extranjero(a)) el Input sólo aceptará letras. El problema:
Al inicio el input sólo acepta números (bien! ), al elegir E -, acepta letras, números, símbolos ( ), y al cambiar de nuevo a V -, acepta letras, números, símbolos ( ).
No consigo el error, tengo WebDeveloper y Firebug instalados en Firefox y no me reportan errores.
Por favor, agradezco cualquier aporte. Aquí dejo el código. El código:
**En el combolist:
Código:
<option value="V" selected="selected" onclick="changeNum()">V - </option>
<option value="E" onclick="changeLet()">E - </option>
**En el input:
Código:
<input type="text" name="prof_cod" id="prof_cod" title="*Coloque número de Cédula de Identidad o Pasaporte" class="required" onKeyPress="return Num(event)" />
**Funciones changeNum() y changeLet():
Código:
function changeNum() {
document.getElementById("prof_cod").value="";
document.getElementById("prof_cod").onkeypress="return Num(event)";
}
function changeLet(){
document.getElementById("prof_cod").value="";
document.getElementById("prof_cod").onkeypress="return Let(event)";
}
**Funciones Num(event) y Let(event):
Código:
//Sólo letras
function Let(e) {
tecla = (document.all) ? e.keyCode : e.which;
if (tecla==8 || tecla==0) return true;
patron = /[A-Za-z]/;
te = String.fromCharCode(tecla);
return patron.test(te);
}
//Sólo números
function Num(b){
// NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
tecla = (document.all) ? b.keyCode : b.which;
if (tecla==8||tecla==0) return true;
patron =/[0-9]/;
te = String.fromCharCode(tecla);
return patron.test(te);
}
|