2017-05-30 2 views
1

Dieses picker es ist bereits mit anderen Standardoptionen erstellt, aber ich brauche es mit den folgenden neuen Optionen zu aktualisieren und es scheint nicht zu funktionieren:Bootstrap 3 Datepicker Optionen dynamisch aktualisieren?

// new options 
var new_options = { 
    format: 'dd/mm/yyyy', 
    autoclose: true, 
    language: 'es' 
} 

// update values 
$("#fecha_periodo").datepicker("update", new_options); 

Ich würde auch andere Optionen wie daysOfWeekDisabled aktualisieren möchte, viewMode und so weiter.

+0

Vom Update-Bereich in der Bootstrap picker, so scheint es sehr klar, dass die Optionen Aktualisieren von Werten angeben. https://bootstrap-datepicker.readthedocs.io/en/latest/methods.html#update – Cam

+0

Ich sah das bereits, es ändert Werte, aber nicht Optionen –

+0

Versuchen Sie die Formatoption. https://bootstrap-datepicker.readthedocs.io/en/latest/options.html#format – Cam

Antwort

2

Leider gibt es keine API, um Optionen dynamisch zu ändern, alle verfügbaren Methoden sind aufgelistet here (Sie können setDaysOfWeekDisabled verwenden, um dynamisch Wochentage deaktiviert zu setzen).

Sie können die Methode destroy verwenden, um die Datepicker-Instanz zu zerstören und sie mit den neuen Optionen erneut zu erstellen.

Hier ein anschauliches Beispiel:

$('#datepicker').datepicker(); 
 

 
$('#btnChange').click(function(){ 
 
    var new_options = { 
 
    format: 'dd/mm/yyyy', 
 
    autoclose: true, 
 
    language: 'es' 
 
    } 
 
    // Save value 
 
    var value = $('#datepicker').datepicker('getDates'); 
 
    // Destroy previous datepicker 
 
    $('#datepicker').datepicker('destroy'); 
 
    // Re-int with new options 
 
    $('#datepicker').datepicker(new_options); 
 
    // Set previous value 
 
    $('#datepicker').datepicker('setDates', value); 
 
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet"/> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/css/bootstrap-datepicker3.css" rel="stylesheet"/> 
 

 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/js/bootstrap-datepicker.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/locales/bootstrap-datepicker.es.min.js"></script> 
 

 
<input type="text" class="form-control" id="datepicker"> 
 

 
<button id="btnChange" class="btn btn-primary">Change option</button>

+1

Ich war dabei, zu datepicker "v4" zu wechseln, aber es scheint keine offizielle Seite zu sein, ich weiß nicht, ob Sie beobachtet haben, dass es viele Bootstrap "datepickers" und "datetimepickers" Seiten gibt, die die Leute verwirrt haben und ich weiß nicht, welche zu verwenden, ich benutze nur Bootstraps Built-Int. Ich schätze Ihre Antwort und werde das nutzen, Grüße. –

+0

Leider enthält Bootstrap selbst keinen Datepicker, aber es gibt viele unabhängige Datepicker mit Bootstrap-Thema. Meiner Meinung nach ist der beste [bootstrap-datetimepicker] (http://eonasdan.github.io/bootstrap-datetimepicker/) von eonasdan. Es verwendet Momentjs, es hat eine reiche API und es ist gut dokumentiert. – VincenzoC