Obecnie próbuję utworzyć filtr, który pozwoli mi wybrać datę za pomocą jqueryui datepicker. Ta data zostanie następnie porównana z wartością ukrytego wejścia. Rodzic div Ukrytych wejść będzie następnie ukryty za pomocą funkcji .hide(), jeśli ukryta data jest mniejsza niż data wybierz za pomocą wyboru.

<div data-value="I0001-APP0277-S" class="server_wrapper" style="display: block;">
<div class="detail_wrapper">....</div>
<input type="hidden" class="buildStart_hidden" value="4/25/2014 1:46:19 pm">
</div>

<input type="text" id="buildStart_filter" class="secondary_live_filter hasDatepicker">

Używając tego kodu:

$('#buildStart_filter').change(function(){
    var date = $(this).val();
    $('.buildStart_hidden').each(function(){
        if(date>$(this).val().split(' ')[0]){
            $(this).parent().hide();
        }
    });
});

Ale użycie tego kodu nie działa. Myślę, że może być spowodowane porównaniem wartości łańcuchowych, a nie wartości data. Co mogę zmienić, aby dokonać porównania?

0
DarylF 13 sierpień 2014, 19:26

2 odpowiedzi

Najlepsza odpowiedź

Po kilkuszej pracy zorientowałem problem. Próbowałem porównać typy strun i nie typów.

Ten kod działa teraz jako hiddenDate i FilterDateDate() typy, a zatem można ocenić przy użyciu operatora >=:

$('#buildStart_filter').change(function(){
    var filterDate = $('#buildStart_filter').datepicker('getDate');
    $('.buildStart_hidden').each(function(){
        var hiddenDateStr = $(this).val();
        var hiddenDate = new Date(hiddenDateStr);
        if(filterDate>=hiddenDate){
            $(this).parent().hide();    
        }else{
            $(this).parent().show();
        }
    });
});
0
DarylF 14 sierpień 2014, 09:38

Może:

Brakuje, aby usunąć godzinę od daty

date.split(' ')[0] > $(this).val().split(' ')[0]
0
CristinaKity 13 sierpień 2014, 18:43