2017-05-11 4 views
1

Ich bin eine Bootstrap-Datepicker verwenden, die wie so initialisiert ...jQuery Validator vorherigen Wert nach Bootstrap-Datepicker mit

$(".datepicker").datepicker({ 
    language: "en-GB", 
    startDate: "01/01/1900", 
    endDate: "31/12/2200", 
    autoclose: true, 
    forceParse: false 
}); 

Dann habe ich eine benutzerdefinierte jQuery-Validator haben, das ist ...

$(function() { 
    $.validator.addMethod("futuredaterequired", function (value, element, params) { 
     //Validation code here 
    }); 
}); 

Sobald ich jedoch eine Auswahl aus dem Datepicker getroffen habe, ist der value in der Validator-Methode der vorherige Wert, der im Datepicker ausgewählt wurde. Nicht der neu ausgewählte Wert.

Also versuchte ich mit element, um den Wert wieder zu erhalten, aber das gibt auch den vorherigen Wert des Datepicker zurück. Wenn ich eine setTimeOut auf die gesamte Methode setzen, dann ist die value korrekt, aber die Zeitüberschreitung verursacht andere Probleme.

Irgendwelche Gedanken, wie ich das beheben könnte?

Antwort

0

Die einzige Lösung dieses Problems ich jetzt ... Auf diese Weise

$(".datepicker").datepicker({ 
    language: "en-GB", 
    startDate: "01/01/1900", 
    endDate: "31/12/2200", 
    autoclose: true, 
    forceParse: false 
}) 
.on('changeDate', function(e) { 
    $(this).valid(); 
}); 

gefunden haben, wird die jQuery Validierung ausgeführt, nachdem der Istwert im Eingangs geändert wurde.

Die Methode läuft immer noch bei der ersten Auswahl eines Datums und verwendet weiterhin den vorherigen Datumswert. Wenn es jedoch ein zweites Mal auf changeDate ausgeführt wird, verwendet es den richtigen Wert.

Nicht ideal ... aber es funktioniert. Wenn Sie bessere Lösungen haben, lassen Sie es mich bitte wissen.

Verwandte Themen