Salve a tutti. Premetto di essere in fase di apprendimento con Jquery, ho da poco compreso l'event delegation grazie alla guida presente su questo sito.
Tuttavia sono bloccato nell'azione di recuperare un dato che non è ancora presente in quel momento nella pagina. Pessima spiegazione, vado al dunque.
Sto implementando datepicker per bootstrap, posto le righe incriminate:
$('body').on('focus', '#created_from_usr', function(){
$(this).datetimepicker({
showTodayButton: true,
showClear: true,
showClose: true,
format: format,
locale: lang,
});
});
$('body').on('focus', '#created_to_usr', function(){
$(this).datetimepicker({
useCurrent: false, //Important! See issue #1075
showTodayButton: true,
showClear: true,
showClose: true,
format: format,
locale: lang,
});
});
Tutto questo codice è contenuto in un file js inserito a fondo pagina.
Quando questo codice è caricato, i selettori #created_from_usr e #created_to_usr
non sono ancora esistenti, tuttavia graze alla event delegation il tag body ascolta fino a quando non rileva il click, fin qui tutto bene.
Il seguente codice è quello che gestisce i due datepicker:
$("body").on("dp.change", '#created_from_usr', function (e) {
//$('#created_to_usr').data("DateTimePicker").minDate(e.date); <-- qui il problema
reset();
var created_from_usr = $(this).val();
sessionStorage.setItem('created_from_usr', created_from_usr);
usersMainAction();
});
$("body").on("dp.change", '#created_to_usr', function (e) {
//$('#created_from_usr').data("DateTimePicker").minDate(e.date); <-- qui il problema
reset();
var created_to_usr = $(this).val();
sessionStorage.setItem('created_to_usr', created_to_usr);
usersMainAction();
});
In questa fase nasce il problema. Non riesco a recuperare i valori di #created_to_user e #created_from_user.
Ho quindi pensato di delegare a body anche l'ascolto del valore futuro di questi selettori, provando qualcosa come:
var my_created_from_user = $('body').on('load', '#created_to_usr').attr(id);
e dunque poter fare:
$("body").on("dp.change", '#created_from_usr', function (e) {
$(my_created_from_user).data("DateTimePicker").minDate(e.date);
reset();
var created_from_usr = $(this).val();
sessionStorage.setItem('created_from_usr', created_from_usr);
usersMainAction();
});
Ma ovviamente non funziona, in pratica vorrei un event da gestire per permettere a body di recuperare il valore di quel selettore, per poi poter completare l'azione di confronto fra i due range di data dei due datepicker.
Grazie in anticipo
Giorgio
Tuttavia sono bloccato nell'azione di recuperare un dato che non è ancora presente in quel momento nella pagina. Pessima spiegazione, vado al dunque.
Sto implementando datepicker per bootstrap, posto le righe incriminate:
$('body').on('focus', '#created_from_usr', function(){
$(this).datetimepicker({
showTodayButton: true,
showClear: true,
showClose: true,
format: format,
locale: lang,
});
});
$('body').on('focus', '#created_to_usr', function(){
$(this).datetimepicker({
useCurrent: false, //Important! See issue #1075
showTodayButton: true,
showClear: true,
showClose: true,
format: format,
locale: lang,
});
});
Tutto questo codice è contenuto in un file js inserito a fondo pagina.
Quando questo codice è caricato, i selettori #created_from_usr e #created_to_usr
non sono ancora esistenti, tuttavia graze alla event delegation il tag body ascolta fino a quando non rileva il click, fin qui tutto bene.
Il seguente codice è quello che gestisce i due datepicker:
$("body").on("dp.change", '#created_from_usr', function (e) {
//$('#created_to_usr').data("DateTimePicker").minDate(e.date); <-- qui il problema
reset();
var created_from_usr = $(this).val();
sessionStorage.setItem('created_from_usr', created_from_usr);
usersMainAction();
});
$("body").on("dp.change", '#created_to_usr', function (e) {
//$('#created_from_usr').data("DateTimePicker").minDate(e.date); <-- qui il problema
reset();
var created_to_usr = $(this).val();
sessionStorage.setItem('created_to_usr', created_to_usr);
usersMainAction();
});
In questa fase nasce il problema. Non riesco a recuperare i valori di #created_to_user e #created_from_user.
Ho quindi pensato di delegare a body anche l'ascolto del valore futuro di questi selettori, provando qualcosa come:
var my_created_from_user = $('body').on('load', '#created_to_usr').attr(id);
e dunque poter fare:
$("body").on("dp.change", '#created_from_usr', function (e) {
$(my_created_from_user).data("DateTimePicker").minDate(e.date);
reset();
var created_from_usr = $(this).val();
sessionStorage.setItem('created_from_usr', created_from_usr);
usersMainAction();
});
Ma ovviamente non funziona, in pratica vorrei un event da gestire per permettere a body di recuperare il valore di quel selettore, per poi poter completare l'azione di confronto fra i due range di data dei due datepicker.
Grazie in anticipo
Giorgio