mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Deteccion de cambios incluyendo select, input, textarea y checkbox
This commit is contained in:
@ -117,7 +117,7 @@
|
|||||||
<?= $this->section("additionalInlineJs") ?>
|
<?= $this->section("additionalInlineJs") ?>
|
||||||
|
|
||||||
// Obtener todos los campos de entrada del formulario
|
// Obtener todos los campos de entrada del formulario
|
||||||
const formInputs = document.querySelectorAll('input, textarea');
|
const formInputs = document.querySelectorAll('input, textarea, select');
|
||||||
|
|
||||||
//console.log(formInputs)
|
//console.log(formInputs)
|
||||||
|
|
||||||
@ -126,31 +126,51 @@
|
|||||||
|
|
||||||
// Guardar los valores originales
|
// Guardar los valores originales
|
||||||
formInputs.forEach(function(input) {
|
formInputs.forEach(function(input) {
|
||||||
originalValues[input.id] = input.type === 'checkbox' ? input.checked : input.value;
|
if (input.type === 'checkbox') {
|
||||||
|
originalValues[input.id] = input.checked;
|
||||||
|
} else {
|
||||||
|
originalValues[input.id] = input.tagName.toLowerCase() === 'select'
|
||||||
|
? $(input).val() // jQuery para obtener el valor de un select2
|
||||||
|
: input.value;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
console.log(originalValues)
|
||||||
|
|
||||||
// Agregar un evento de cambio a cada campo de entrada
|
// Agregar un evento de cambio a cada campo de entrada
|
||||||
formInputs.forEach(function(input) {
|
formInputs.forEach(function(input) {
|
||||||
console.log(input.type)
|
if (input.tagName.toLowerCase() === 'select' && $(input).data('select2')) {
|
||||||
input.addEventListener('input', function() {
|
// Para elementos select2
|
||||||
//console.log(input.value)
|
$(input).on('change', function() {
|
||||||
// Verificar si hay cambios con respecto a los originales
|
verificarCambios();
|
||||||
const cambiosDetectados = Array.from(formInputs).some(function(input) {
|
|
||||||
return input.type === 'checkbox' ?
|
|
||||||
input.checked !== originalValues[input.id] :
|
|
||||||
input.value !== originalValues[input.id];
|
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
// Mostrar alerta solo si hay cambios
|
// Para otros tipos de campos
|
||||||
if (cambiosDetectados) {
|
input.addEventListener('input', function() {
|
||||||
showBreadCrumbSaveButton(true);
|
verificarCambios();
|
||||||
console.log('¡Se detectaron cambios!');
|
});
|
||||||
}else{
|
}
|
||||||
showBreadCrumbSaveButton(false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function verificarCambios() {
|
||||||
|
// Verificar si hay cambios con respecto a los originales
|
||||||
|
var cambiosDetectados = Array.from(formInputs).some(function(input) {
|
||||||
|
return input.type === 'checkbox'
|
||||||
|
? input.checked !== originalValues[input.id]
|
||||||
|
: input.tagName.toLowerCase() === 'select'
|
||||||
|
? $(input).val() !== originalValues[input.id]
|
||||||
|
: input.value !== originalValues[input.id];
|
||||||
|
});
|
||||||
|
|
||||||
|
// Mostrar alerta solo si hay cambios
|
||||||
|
if (cambiosDetectados) {
|
||||||
|
showBreadCrumbSaveButton(true);
|
||||||
|
}else{
|
||||||
|
showBreadCrumbSaveButton(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user