Está en la página 1de 2

function checkDuplicates() {

var inputs = document.querySelectorAll('input[id^="correo"]'); // Obtener todos


los elementos de entrada que comienzan con 'correo'

var values = [];


var duplicates = [];

for (var i = 0; i < inputs.length; i++) {


var input = inputs[i];
var value = input.value.trim(); // Obtener el valor de la entrada y eliminar
los espacios en blanco al inicio y al final

if (!value) {
continue; // Saltar la entrada si no tiene valor o es una cadena vacía
}

if (values.includes(value)) {
duplicates.push(value); // Si el valor ya existe en el arreglo 'values',
agregarlo al arreglo 'duplicates'
input.classList.add('error'); // Agregar la clase 'error' para resaltar la
entrada duplicada
input.setAttribute('data-bs-toggle', 'tooltip'); // Agregar el atributo data-
bs-toggle para habilitar el tooltip
input.setAttribute('data-bs-placement', 'top'); // Establecer la posición del
tooltip en 'top'
input.setAttribute('data-bs-original-title', 'Valor duplicado. Ingresa uno
diferente'); // Establecer el mensaje del tooltip
} else {
values.push(value); // De lo contrario, agregarlo al arreglo 'values'
input.classList.remove('error'); // Eliminar la clase 'error' si
anteriormente era una entrada duplicada
input.removeAttribute('data-bs-toggle'); // Eliminar el atributo data-bs-
toggle
input.removeAttribute('data-bs-placement'); // Eliminar el atributo de
posición del tooltip
input.removeAttribute('data-bs-original-title'); // Eliminar el atributo de
mensaje del tooltip
}
}

if (duplicates.length > 0) {
var alertMessage = 'Duplicados encontrados: ' + duplicates.join(', ');
alert(alertMessage);

var firstDuplicate = document.querySelector('input.error'); // Obtener el


primer elemento de entrada con la clase 'error'

if (firstDuplicate) {
firstDuplicate.focus(); // Establecer el foco en la primera entrada duplicada
var scrollPosition = firstDuplicate.getBoundingClientRect().top +
window.pageYOffset - 200; // Calcular la posición de desplazamiento con un
desplazamiento de -200 píxeles en el eje Y
window.scrollTo({ top: scrollPosition, behavior: 'smooth' }); // Desplazarse
a la posición de desplazamiento calculada
}
}

// Habilitar los tooltips de Bootstrap para todas las entradas con el atributo
data-bs-toggle
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-
toggle="tooltip"]'));
tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl);
});
}

checkDuplicates();

También podría gustarte