Para evitar que se copie el contenido de la primera caja del email, solo debes detener la ejecución del evento
copy
:
Código Javascript
:
Ver originaldocument.form1.email1.addEventListener("copy", function(event){
event.preventDefault();
}, false);
Y para evitar que se pegue el contenido de la primera caja o de otra en la segunda caja del email, solo debes detener la ejecución del evento
paste
:
Código Javascript
:
Ver originaldocument.form1.email2.addEventListener("paste", function(event){
event.preventDefault();
}, false);
Como se realiza la misma acción, detener el evento ocurrido utilizando el método
.preventDefault()
, puedes utilizar una función que ejecutarías en ambos casos:
Código Javascript
:
Ver originalfunction detener(event){
event.preventDefault();
}
document.form1.email1.addEventListener("copy", detener, false);
document.form1.email2.addEventListener("paste", detener, false);
Aunque aparentemente la expresión regular que utilizas es la adecuada, te sugiero utilizar
la que se emplea internamente en los
<input>
de tipo
email
de HTML5:
Código Regex:
Ver original/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
Y la evaluación la realizarías así:
Código Javascript
:
Ver originalvar regex = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,
email1 = document.form1.email1.value,
email2 = document.form1.email2.value;
if (regex.test(email1) && regex.test(email2)){
//Instrucciones
}
También puedes utilizar el
elemento que mencioné para que evites realizar esta validación, así como el uso del atributo
required
para impedir que se procese el formulario si alguno de sus campos, que posea dicho atributo, no contenga valor alguno.