Мне нужно настроить страницу, которая позволяет пользователям регистрироваться, используя свою электронную почту, но в качестве требования электронная почта не должна быть "видимой" для человеческого глаза, я думаю, должен быть лучший способ сделать это , но до сих пор я придумал эту опцию, используя JQuery:
Я создал фальшивый элемент управления, который обрабатывает маскирование и захватывает текст, чтобы его можно было присвоить скрытому полю (чтобы ранее работавший код продолжал работать без изменений).
var emailControl = $("#eMail");
var firstHalf = "";
var secondHalf = "";
var fullMail = "";
emailControl.keyup(function(e){
var control = e.currentTarget;
var currentText = $(control).val();
if (currentText.length == 0){
fullMail = '';
firstHalf = '';
secondHalf = '';
$(control).attr('type', 'password');
}
else{
var components = currentText.split("@");
var hiddenPart = "•".repeat(components[0].length);
detectChanges(currentText);
if (components.length == 2) {
secondHalf = '@' + components[1];
}
$(control).attr('type', 'text');
$(control).val(hiddenPart + secondHalf);
fullMail = firstHalf + secondHalf;
}
});
function detectChanges(originalText) {
var position = originalText.indexOf('@');
if (position == -1) {
position = originalText.length;
}
for (var i = 0; i < position; i++){
if (originalText[i] != "•"){
firstHalf = firstHalf.substring(0, i) + originalText[i] + firstHalf.substring(i+1);
}
}
}
Мне удалось заставить его работать здесь: https://codepen.io/icampana/pen/KbegKE