Foros del Web » Programando para Internet » Javascript »

Desabilitar Ctrl + V en input type="password"

Estas en el tema de Desabilitar Ctrl + V en input type="password" en el foro de Javascript en Foros del Web. Como puedo desabilitar el pegado (Ctrl + V) en un control input de type = "text" o type="password". Creo haberlo visto alguna vez en esos ...
  #1 (permalink)  
Antiguo 01/10/2003, 03:31
Avatar de txarly  
Fecha de Ingreso: marzo-2003
Ubicación: Eibar (Gipuzkoa)
Mensajes: 455
Antigüedad: 21 años, 8 meses
Puntos: 2
Desabilitar Ctrl + V en input type="password"

Como puedo desabilitar el pegado (Ctrl + V) en un control input de type = "text" o type="password". Creo haberlo visto alguna vez en esos formularios en los que te mandán repetir tu contraseña para verificarla, si intentas copiar algo dentro de ese control que no te deje.

Alguien conoce ese script?

Un saludo
Txarly
__________________
¿Por qué Uri Geller doblaba cucharas?
  #2 (permalink)  
Antiguo 01/10/2003, 11:04
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola, txarly.

A ver si esto te vale:
Código PHP:
<html>
<
head>
<
script>
function 
validar(e) {
    
tecla = (document.all)?e.keyCode:e.which;
    if(
tecla==86 && e.ctrlKey)
        return 
false;
}
</script>
</head>

<body>
<input type="password" name="textfield" onKeyDown="return validar(event)">
</body>
</html> 
Saludos,
  #3 (permalink)  
Antiguo 01/10/2003, 12:18
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 21 años, 3 meses
Puntos: 1
tambien puede ser con el envento on KeyPressed
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #4 (permalink)  
Antiguo 01/10/2003, 12:32
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Cita:
Mensaje Original por acervantes
tambien puede ser con el envento on KeyPressed
¡Pos no! Con el evento onKeyPress no funciona y tampoco funciona con onKeyUp (al menos en IE que es donde lo he probado)

Saludos,
  #5 (permalink)  
Antiguo 01/10/2003, 16:37
Avatar de ProgramacionWeb  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona
Mensajes: 176
Antigüedad: 21 años, 5 meses
Puntos: 2
Lo mas sencillo de todo:

<input onpaste="return false">

Evita tambien que se pueda pegar usando el menu contextual
__________________
Foros en los que participo:
  #6 (permalink)  
Antiguo 01/10/2003, 18:08
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 21 años, 3 meses
Puntos: 1
genial, y lo he probado así:
<input type="text" name="regPag" onKeyPress="return Enter(event)" >
y en una función Enter controlo las teclas que deseo que acepte...
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #7 (permalink)  
Antiguo 02/10/2003, 00:55
Avatar de txarly  
Fecha de Ingreso: marzo-2003
Ubicación: Eibar (Gipuzkoa)
Mensajes: 455
Antigüedad: 21 años, 8 meses
Puntos: 2
Gracias a todos;
La verdad es que no había visto nunca el evento onpaste, va perfecto.

Saludos
Txarly
__________________
¿Por qué Uri Geller doblaba cucharas?
  #8 (permalink)  
Antiguo 02/10/2003, 01:10
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola, ProgramacionWeb.

Yo tampoco conocía ese evento. Realmente es más sencillo, la pega que le veo es que no funciona en Netscape. (no se en otros navegadores)

Saludos,
  #9 (permalink)  
Antiguo 02/10/2003, 04:02
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
No te preocupes, seguramente eso de onpaste sólo se lo cree Internet Explorer.

Si haces eso de controlar las teclas, controla tambien el botón del mouse y el drop del drag&drop
__________________
M a l d i t o F r i k i
  #10 (permalink)  
Antiguo 15/10/2003, 06:48
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Hola todos :

¿ Alguien me puede confirmar si éste código no funciona en algún navegador ?. Creo que no usé JScript©.

Código:
<SCRIPT>
var largo=0;

function noPegar(){
if(formulario.conf.value.length==largo+1){
largo=formulario.conf.value.length}
else{
formulario.conf.value='';
largo=0}
}

function comparar(){
if(formulario.pwd.value==formulario.conf.value)
alert("Ambas contraseñas son iguales.");
else alert("Repita la confirmación de contraseña.");
}
</SCRIPT>

<form name="formulario">
Contraseña : <br><input name="pwd">
<p>
Confirmación : <br><input name="conf" onkeyup="noPegar()" 
onfocus="this.value='';largo=0" 
onblur="largo-=1;noPegar()">
<p>
<input type="button" onclick="comparar()" value="Compara">
</form>
Gracias

furoya

P.D. : pensándolo bien, creo que la mejor manera de evitar que se copie la "Contraseña" al casillero de "Confirmación" es usar dos <input type=password> .
  #11 (permalink)  
Antiguo 07/01/2005, 09:11
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 11 meses
Puntos: 2
en firefox no funciona :( en IE siiii

alguna solucion?

Cita:
Iniciado por JavierB
Hola, txarly.

A ver si esto te vale:
Código PHP:
<html>
<
head>
<
script>
function 
validar(e) {
    
tecla = (document.all)?e.keyCode:e.which;
    if(
tecla==86 && e.ctrlKey)
        return 
false;
}
</script>
</head>

<body>
<input type="password" name="textfield" onKeyDown="return validar(event)">
</body>
</html> 
Saludos,
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #12 (permalink)  
Antiguo 07/01/2005, 11:08
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola sanfermin

Efectivamente en Firefox no funciona, pero no se como solucionarlo. Detecta bien la combinación de teclas (Ctrl+V) pero falla en la líner return false. He intentado varias cosas sin exito, también he buscado por la güeb y no he encontrado nada.

Si aparece por aquí alguien que sabe como resolverlo le agradeceré el poder quitarme esta espinita que tengo clavada en el JavaScript

Saludos,
  #13 (permalink)  
Antiguo 08/01/2005, 16:01
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Hola otra vez :

sanfermin : no me queda claro si la prueba es con mi código o con el de JavierB. De cualquier forma, gracias.

JavierB : ¿Que pasa si ponemos así

Código:
 
function validar(e) { 
    tecla = (document.all)?e.keyCode:e.which; 
    if(tecla==17 || e.ctrlKey) 
        return false; 
}
y bloqueamos solamente el [CTRL] ?

saludos

furoya
  #14 (permalink)  
Antiguo 08/01/2005, 16:51
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 11 meses
Puntos: 2
El código q citaba en el post, el de JavierB
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #15 (permalink)  
Antiguo 09/01/2005, 03:56
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola furoya

Lo he probado y tampoco funciona en Firefox. Sigo creyendo que debe haber alguna alternativa a return false. He comprobado que si se utiliza el evento onkeypress funciona bien, lo he usado para contestar algún mensaje que quería escribir solo números, pero este evento no detecta algunas teclas, entre ellas Ctrl.

Gracias de todas formas. Saludos,
  #16 (permalink)  
Antiguo 31/01/2005, 14:01
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
También estuve probando lo de return, pero en medio se me ocurrió agregar un alerta. Y entonces empezó a andar.

Código:
 
<html> 
<head> 
<script> 
function validar(e) { 
    tecla = (document.all)?e.keyCode:e.which; 
    if(tecla==86 && e.ctrlKey) {
		alert("No se puede usar [CONTROL] + [v]");
        return false;
 }
} 
</script> 
</head> 

<body> 
<input type="" name="textfield" onKeyDown="return validar(event)"> 
</body> 
</html>
Aunque no sé si lo querían sin aviso.

saludos

furoya
  #17 (permalink)  
Antiguo 01/02/2005, 05:26
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 20 años, 1 mes
Puntos: 7
...y dándole otro punto de vista?. Con un evento onchange calcular en cada cambio la diferencia de caracteres del campo y si está es superior a 1 es que se ha hecho un copiar/pegar...
  #18 (permalink)  
Antiguo 01/02/2005, 06:57
 
Fecha de Ingreso: mayo-2003
Ubicación: Bogotá
Mensajes: 68
Antigüedad: 21 años, 6 meses
Puntos: 0
Las dos soluciones expuestas (<input onpaste="return false">
y function validar(e) ) no funcionan con Netscape.
__________________
diegofff
  #19 (permalink)  
Antiguo 01/02/2005, 14:37
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Hola una vez más :

diegofff : lo del (e) es para elegir entre keyCode y which; éste último era Netscape, es raro que no funcione.

pintix : en el mensaje #10 hay algo así.

saludos

furoya
  #20 (permalink)  
Antiguo 02/02/2005, 08:19
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 20 años, 1 mes
Puntos: 7
Cita:
Iniciado por furoya

(...)

pintix : en el mensaje #10 hay algo así.

(...)
Perdón, no me había fijado. De todas formas con onchange matas dos pájaros de un tiro . Aunque tampoco sé que compatibilidad tiene, hace tiempo onchange daba problemas en mac...
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 22:53.