Foros del Web » Programando para Internet » Javascript »

Enmascarar input de tarjeta de credito

Estas en el tema de Enmascarar input de tarjeta de credito en el foro de Javascript en Foros del Web. Que tal soy nuevo en javascript y necesito una funcion que me permita tener en una caja de texto 15 o 16 caracteres de una ...
  #1 (permalink)  
Antiguo 27/10/2011, 22:09
 
Fecha de Ingreso: octubre-2011
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
Enmascarar input de tarjeta de credito

Que tal soy nuevo en javascript y necesito una funcion que me permita tener en una caja de texto 15 o 16 caracteres de una tarjeta de credito y que los primeros 11 0 12 numeros se cambien por asteriscos (*) al presionar la tecla y los ultimos 4 numeros si se deben mostrar normalmente.
Los campos se deben guardar en un input de tipo hidden para despues llevarlos a otros procesos

Por ejemplo:

al pulsar los numeros ************5791 y en el otro input debe de mostrar lo mismo pero sin los asteriscos(*) 1234657891825791 y al borrar el primero debera borrar algo del primer input tambien borrara del segudo input

Este es la funcion que tengo pero el problema es que al inicio no se van guardando los numeros solamente hasta que borras lo que has presionado y no puedo hacer que se haga desde que se oprima la primer tecla


<html>
<head>
<script language="javascript">
function delete_char(evt)
{
var charCode=evt.charCode ? evt.charCode : evt.keyCode
var char=String.fromCharCode(charCode)

if (charCode == 8 || charCode == 46 )
{
str_alterno = document.getElementById('hdnCardNumbrer').value;
if(document.getElementById('txtCardNumber').value. length < 1)
str_alterno = '';
else
{

var a_borrar= document.getElementById('hdnCardNumbrer').value.le ngth - document.getElementById('txtCardNumber').value.len gth;
str_alterno = str_alterno.substr(0,str_alterno.length-a_borrar);
}
document.getElementById('hdnCardNumbrer').value = str_alterno;
return false;
}

}

function masking_control(evt)
{
if(document.getElementById('selCardType').value==' AMEXCO'){
document.getElementById('txtCardNumber').maxLength =15;

var charCode=evt.charCode ? evt.charCode : evt.keyCode
var char=String.fromCharCode(charCode)

if (charCode == 8 || charCode == 46 )
{
str_alterno = document.getElementById('hdnCardNumbrer').value;
if(document.getElementById('txtCardNumber').value. length < 1)
str_alterno = '';
else
{
var a_borrar= document.getElementById('hdnCardNumbrer').value.le ngth - document.getElementById('txtCardNumber').value.len gth;
str_alterno = str_alterno.substr(0,str_alterno.length-a_borrar);
}
document.getElementById('hdnCardNumbrer').value = str_alterno;
return false;
}else
{
var control = document.getElementById('txtCardNumber');
var new_value = '';
for(var i=0; i<control.value.length;i++)
{

if(i<11)
new_value += '*';
else
new_value += control.value.charAt(i);
}
document.getElementById('txtCardNumber').value = new_value;

var str_aux = char;
if(str_alterno.length != 16)
str_alterno = str_alterno + str_aux;
document.getElementById('hdnCardNumbrer').value = str_alterno;
}
}else{
document.getElementById('txtCardNumber').maxLength =16;
var charCode=evt.charCode ? evt.charCode : evt.keyCode
var char=String.fromCharCode(charCode)

if (charCode == 8 || charCode == 46 )
{
str_alterno = document.getElementById('hdnCardNumbrer').value;
if(document.getElementById('txtCardNumber').value. length < 1)
str_alterno = '';
else
{
var a_borrar= document.getElementById('hdnCardNumbrer').value.le ngth - document.getElementById('txtCardNumber').value.len gth;
str_alterno = str_alterno.substr(0,str_alterno.length-a_borrar);
}
document.getElementById('hdnCardNumbrer').value = str_alterno;
return false;
}else
{
var control = document.getElementById('txtCardNumber');
var new_value = '';
for(var i=0; i<control.value.length;i++)
{
if(i<12)
new_value += '*';
else
new_value += control.value.charAt(i);
}
document.getElementById('txtCardNumber').value = new_value;

var str_aux = char;
if(str_alterno.length != 16)
str_alterno = str_alterno + str_aux;
document.getElementById('hdnCardNumbrer').value = str_alterno;
}

}
}
function PermiteNumeros()
{
var tecla = window.event.keyCode;
tecla = String.fromCharCode(tecla);
if(!((tecla >= "0") && (tecla <= "9")))
{
window.event.keyCode = 0;
}
}
function numero_tarjeta(){
alert(document.getElementById('hdnCardNumbrer').va lue + ' '+ document.getElementById('selCardType').value);
}
</script>
</head>
<body>
<select id="selCardType">
<option value =""></option>
<option value ="AMEXCO">AMEXCO</option>
<option value ="OTRO">OTRO</option>
</select>
<input id="txtCardNumber" onkeypress="masking_control(evt)" onkeyup="delete_char(evt);">
<input id="hdnCardNumbrer" onclick="numero_tarjeta();" />

</body>
</html>

Etiquetas: credito, enmascarar, funcion, html, input, tarjeta
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:41.