2015-10-23 14 views
7

Za pomocą przycisku HTML input type="date" i przycisku przesyłania. Chciałbym zapełnić zmienne day, month i z odpowiednimi wartościami z wprowadzania danych.Jak wyodrębnić wartości z HTML <typ wejściowy = "data"> przy użyciu jQuery

<input type="date" id="date-input" required /> 
<button id="submit">Submit</button> 

i jQuery:

var day, month, year; 

$('#submit').on('click', function(){ 
    day = $('#date-input').getDate(); 
    month = $('#date-input').getMonth() + 1; 
    year = $('#date-input').getFullYear(); 
    alert(day, month, year); 
}); 

Oto przykładowy kod: https://jsfiddle.net/dkxy46ha/

błąd konsola mówi mi, że .getDate() nie jest funkcją.

Widziałem podobne pytania, ale rozwiązania nie sprawdziły się u mnie. Jak mogę wydobyć dzień, miesiąc i rok z input type="date"? Dzięki

+0

wartość jest łańcuch trzeba utworzyć 'nowy dzień spełnienia wymogu z – charlietfl

Odpowiedz

9

Najpierw trzeba stworzyć Date obiekt z input wartość elementu. I wtedy będziesz w stanie uzyskać dzień, miesiąc i rok z tego obiektu.

$('#submit').on('click', function(){ 
    var date = new Date($('#date-input').val()); 
    day = date.getDate(); 
    month = date.getMonth() + 1; 
    year = date.getFullYear(); 
    alert([day, month, year].join('/')); 
}); 

przykład robocza: wartość https://jsfiddle.net/8poLtqvp/

2
date = new Date($('#date-input').val()) 
date.getDate() 

...

+0

to nie będzie działać. Musisz uzyskać wartość wejściową. I dopiero wtedy stwórz obiekt "Date" –

+1

date = new Date ($ ('# data-input'). Val()) –

+0

Wystarczająco fair, dzięki. –

2

Data zwrócony przez input type="date" jest w formacie yyyy-mm-dd. Przydałoby .split() z argumentem "-" odzyskać tablicę zawierającą [yyyy, mm, dd]

Uwaga, alert() oczekuje ciąg jako parametr; nie drukuje wartości takie same jak console.log() z przecinkami , operatora

var day, month, year; 

$('#submit').on('click', function() { 
    var date = $('#date-input').val().split("-"); 
    console.log(date, $('#date-input').val()) 
    day = date[2]; 
    month = date[1]; 
    year = date[0]; 
    alert(day + month + year); 
}); 

jsfiddle https://jsfiddle.net/dkxy46ha/2/

Powiązane problemy