mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Cambiado esquema de deteccion, ahora no se lleva memoria, solo ser cosciente de que algo ha cambiado
This commit is contained in:
@ -173,4 +173,4 @@
|
||||
</div> <!-- //.accordion-body -->
|
||||
</div> <!-- //.accordion-collapse -->
|
||||
</div> <!-- //.accordion-item -->
|
||||
</div> <!-- //.accordion -->
|
||||
</div> <!-- //.accordion -->
|
||||
|
||||
@ -214,6 +214,49 @@
|
||||
<!------------------------------------------------------->
|
||||
<?= $this->section("additionalInlineJs") ?>
|
||||
|
||||
$(window).on('load', function() {
|
||||
|
||||
// Detectar cambios en inputs de texto
|
||||
$('input[type="text"]').on('input', function() {
|
||||
console.log("El campo de texto con ID '" + $(this).attr('id') + "' ha cambiado.");
|
||||
});
|
||||
|
||||
// Detectar cambios en inputs de texto
|
||||
$('input[type="number"]').on('input', function() {
|
||||
console.log("El campo de texto con ID '" + $(this).attr('id') + "' ha cambiado.");
|
||||
});
|
||||
|
||||
// Detectar cambios en select
|
||||
$('select').change(function() {
|
||||
console.log("El campo select con ID '" + $(this).attr('id') + "' ha cambiado.");
|
||||
});
|
||||
|
||||
// Detectar cambios en checkboxes
|
||||
$('input[type="checkbox"]').change(function() {
|
||||
console.log("El checkbox con ID '" + $(this).attr('id') + "' ha cambiado.");
|
||||
});
|
||||
|
||||
// Detectar cambios en textareas
|
||||
$('textarea').on('input', function() {
|
||||
console.log("El textarea con ID '" + $(this).attr('id') + "' ha cambiado.");
|
||||
});
|
||||
|
||||
// Detectar cambios en otros tipos de input (por ejemplo, radio buttons)
|
||||
$('input[type="radio"]').change(function() {
|
||||
console.log("El radio button con ID '" + $(this).attr('id') + "' ha cambiado.");
|
||||
});
|
||||
|
||||
// Detectar cambios en otros tipos de input (por ejemplo, radio buttons)
|
||||
$('input:not([type])').on('input', function() {
|
||||
console.log("El valor de un input sin tipo ha cambiado: " + $(this).val());
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
// Obtener todos los campos de entrada del formulario
|
||||
const formInputs = document.querySelectorAll('input, textarea, select');
|
||||
|
||||
@ -223,35 +266,41 @@
|
||||
const originalValues = {};
|
||||
|
||||
// Guardar los valores originales
|
||||
formInputs.forEach(function(input) {
|
||||
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;
|
||||
}
|
||||
});
|
||||
function saveOriginalValues(inputs) {
|
||||
inputs.forEach(input => {
|
||||
if (!input.id) return;
|
||||
|
||||
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;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// Agregar un evento de cambio a cada campo de entrada
|
||||
formInputs.forEach(function(input) {
|
||||
if (input.tagName.toLowerCase() === 'select' && $(input).data('select2')) {
|
||||
// Para elementos select2
|
||||
$(input).on('change', function() {
|
||||
verificarCambios();
|
||||
});
|
||||
} else {
|
||||
// Para otros tipos de campos
|
||||
input.addEventListener('input', function() {
|
||||
verificarCambios();
|
||||
});
|
||||
}
|
||||
});
|
||||
function addChangeEvent(inputs) {
|
||||
inputs.forEach(input => {
|
||||
if (!input.id) return;
|
||||
|
||||
if (input.tagName.toLowerCase() === 'select' && $(input).data('select2')) {
|
||||
// Para elementos select2
|
||||
$(input).on('change', verificarCambios);
|
||||
} else {
|
||||
// Para otros tipos de campos
|
||||
input.addEventListener('input', verificarCambios);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function verificarCambios() {
|
||||
// Verificar si hay cambios con respecto a los originales
|
||||
var cambiosDetectados = Array.from(formInputs).some(function(input) {
|
||||
let cambiosDetectados = Array.from(formInputs).some(input => {
|
||||
if (!input.id) return false;
|
||||
|
||||
return input.type === 'checkbox'
|
||||
? input.checked !== originalValues[input.id]
|
||||
: input.tagName.toLowerCase() === 'select'
|
||||
@ -259,12 +308,10 @@
|
||||
: input.value !== originalValues[input.id];
|
||||
});
|
||||
|
||||
console.log(cambiosDetectados);
|
||||
|
||||
// Mostrar alerta solo si hay cambios
|
||||
if (cambiosDetectados) {
|
||||
showBreadCrumbSaveButton(true);
|
||||
}else{
|
||||
showBreadCrumbSaveButton(false);
|
||||
}
|
||||
showBreadCrumbSaveButton(cambiosDetectados);
|
||||
}
|
||||
|
||||
$('#bc-save').on( "click", function() {
|
||||
@ -272,7 +319,16 @@
|
||||
$('#saveForm').click()
|
||||
} );
|
||||
|
||||
// Llamar a funciones principales
|
||||
saveOriginalValues(formInputs);
|
||||
addChangeEvent(formInputs);
|
||||
|
||||
*/
|
||||
|
||||
$('#bc-save').on( "click", function() {
|
||||
//showBreadCrumbSaveButton(false);
|
||||
$('#saveForm').click()
|
||||
} );
|
||||
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user