2016-05-16 2 views
1

ich das Skript für jQuery UI Datepickerzukünftige Termine erhöhen Fehler jquery ui picker

var date = new Date(new Date().setDate(new Date().getDate() - 1)); 


$('.date').datepicker({ 
    dateFormat: 'dd-mm-yy', 
    defaultDate: date, 
    minDate: Date.parse("1900-01-01"), 
    maxDate: Date.parse("2100-01-01"), 
}); 

und meiner Ansicht nach habe ich habe:

@Html.TextBoxFor(m => m.EndDate, new { @class = "date" }) 

Es ist für gestern und vorherigen Terminen funktioniert ok, aber Raises Fehler, wenn ich werde heute oder höher Datum wählen

enter image description here

was ist los?

EDIT

GOT IT Es geht um mein Format ist. Ich möchte, dass es TT-MM-JJ ist, aber wenn ich zum Beispiel 15-05-2016 wähle, heißt es, dass es nicht 15 Monate im Jahr gibt. Wie kann ich das lösen?

+0

Ich denke, 'new Date()' nimmt Ihr System-Datumsformat. –

+0

@AkashAmin "Date" -Objekte haben kein inhärentes Format. @George Sind Sie sicher, dass das Problem ist? Das Bild zeigt * Das EndDate-Feld ist erforderlich. * – 4castle

+0

@ 4castle Ja, wenn ich 5-5-2016 es funktioniert, aber für 12+ nicht – gsiradze

Antwort

0

ist als ich unauffällig Validierung erhalten muss für anderes Format zu überlastet this answer helped me.

$.validator.addMethod('date', 
function (value, element) { 
    if (this.optional(element)) { 
     return true; 
    } 

    var ok = true; 
    try { 
     $.datepicker.parseDate('dd-mm-yy', value); 
    } 
    catch (err) { 
     ok = false; 
    } 
    return ok; 
}); 
0

Date.parse() gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 für ein Datum String und minDate und maxDate können eine Reihe akzeptieren, aber es wird auf diese Weise verwendet:

Anzahl: Eine Reihe von Tage von heute. Zum Beispiel 2 repräsentiert zwei Tage von heute und gestern -1

Daher darstellt, wird die Validierung erwartet Sie ein Datum eingeben, die zwischen 2208988800000 Tagen in der Vergangenheit und 4102444800000 Tage in der Zukunft ist. Diese Daten sind unglaublich weit entfernt, und sind zu groß für eine Date zu handhaben.

Um es zu beheben, verwenden Sie stattdessen new Date().

$('.date').datepicker({ 
    dateFormat: 'dd-mm-yy', 
    defaultDate: -1, 
    minDate: new Date("1900-01-01"), 
    maxDate: new Date("2100-01-01") 
}); 

JSFiddle

+0

tat das, aber es gibt denselben Fehler .. – gsiradze

+0

Können Sie ein JSFiddle machen, das das Problem zeigt? Hier ist eine, um loszulegen: [JSFiddle mit jQuery UI] (https://jsfiddle.net/soeaz063/) – 4castle

+0

Ich habe es geschafft, aber hier kann kein Formular einreichen. https://jsfiddle.net/86bpLj5s/ mein Code ist das, aber mit dem ich kann keinen Fehler zeigen – gsiradze

0

ich es selbst noch nicht ausprobiert, aber es kann dieses Problem lösen.

Änderung oben Datumsformat wie diese

dateFormat: 'mm-dd-yy', 

oder entfernen Sie einfach die Zeile, weil Standard-Datumsformat mm/dd/yy

+0

in meinem Land unser Format ist TT-MM-JJ das ist, warum ich dieses Format will – gsiradze