2015-05-05 6 views
8

Sto usando bootstrap datepicker e ho ricevuto un problema di data non valida in un caso specifico. Se faccio clic su data oggi funziona bene, ma quando faccio clic sulla stessa data di nuovo, rilascia un problema di data non valida.bootstrap datepicker problema di data non valida quando faccio clic sulla data due volte?

Lo stesso vale per tutte le date come ho visto altri plug-in in cui non riesco a trovare questo problema.

html: <input id="dp1" type="text" class="form-control input-sm" placeholder="Data CheckIn">

javascript:

$("#dp1").datepicker({ 
    format: "mm-dd-yyyy", 
    viewMode: 'days', 
    todayHighlight: true 
}).on('changeDate', function (ev) { 
    var a = $('#dp1').datepicker('getDate'); 
    $(this).datepicker('hide'); 
    alert(a); 
}); 

jsfiddle example

+0

http: // jsfiddle. net/FTpYk/321/ – Sherry

+1

Questo perché si sta deselezionando la data selezionata. Guarda i colori dell'icona gialla (deseleziona) e blu (seleziona). Quando si fa clic sulla data attualmente selezionata, essa ovviamente non sarà più valida poiché viene selezionata/deselezionata. –

+0

Sembra un bug nel plug-in come l'opzione 'toggleActive' (che dovrebbe essere impostata su false in ogni caso) non funziona. Ho provato a impostarlo manualmente e ancora nessun cambiamento di comportamento –

risposta

0

Notevole il lavoro di un giorno ho risolto problema da solo facendo un piccolo cambiamento nella plugin.

Nel metodo bootstrap-datepicker.js _toggle_multidate la riga 1024 è stata commentata.

else if (ix !== -1) 
{ 
    //this.dates.remove(ix); 
} 

e funzionerà come un fascino. Spero che questo possa aiutare.

Si prega di cercare di fare fatemi sapere se questo caso risolvere il problema Grazie

0

non è un issue.When si clicca prima volta che fisserà la data selezionata in ingresso quando si fa clic di nuovo stessa data, quindi deselezionerà quella data.

+0

Ora questo è un bug nel plugin se vedi tutti gli altri plug-in di datepicker troverai un problema e d'altra parte non è appropriato in base alla prospettiva dell'utente. – Sherry

+0

Quindi come potrebbe essere una domanda valida è questa, per soddisfare i nostri bisogni abbiamo bisogno di modificare/modificare o fare qualcosa per raggiungere il requisito. Ecco perché ho aggiunto una risposta. –

1

var currentDate; 
 
$('#dp1').datepicker({ 
 
    format: "mm-dd-yyyy", 
 
    viewMode: 'days', 
 
    todayHighlight: true 
 

 
    // currently picked date 
 
    }).on('show', function() { 
 
    currentDate = $(this).val(); 
 
    }) 
 
    // if no date picked replace with previous date 
 
    .on('changeDate', function(ev) { 
 

 

 
    if ($(this).val() === '' || $(this).val() === null) { 
 
     $(this).val(currentDate).datepicker('update'); 
 
    } 
 
    var a = $('#dp1').datepicker('getDate'); 
 
    $(this).datepicker('hide'); 
 
    alert(a); 
 

 
    });

0

è possibile utilizzare delegato, funziona bene

$("body").delegate('.date' ,'focusin', function() { 
 
    $(this).datepicker({ 
 
     autoclose: true, 
 
     viewMode: 'days', 
 
     todayHighlight: true 
 
    }); 
 
});