2016-07-21 11 views
4

Ich versuche, zwei separate Felder für YY und MM zu haben Was ich gerade habe, ist mehr oder weniger was ich will, außer es ist nur ein Feld. Hier ist, wie es jetzt aussieht: how it's looking right nowDatepicker - separate YY und MM nur

<input id="residenceyears" name="residenceyears" type="text" placeholder="YY/MM" class="input yyMM numeric-only"> 

Dies ist die JS-Funktion:

<script type="text/javascript"> 
$('.yyMM').datepicker({ 
changeMonth: true, 
changeYear: true, 
monthNames: ["1","2","3","4","5","6","7","8","9","10","11","12"], 
yearRange: "-100:+0", 
dateFormat: 'yy/mm', 

onClose: function() { 
    var iMonth = $("#ui-datepicker-div .ui-datepicker-month :selected").val(); 
    var iYear = $("#ui-datepicker-div .ui-datepicker-year :selected").val(); 
    $(this).datepicker('setDate', new Date(iYear, iMonth, 1)); 
}, 

beforeShow: function() { 
    if ((selDate = $(this).val()).length > 0) 
    { 
     iYear = selDate.substring(selDate.length - 4, selDate.length); 
     iMonth = jQuery.inArray(selDate.substring(0, selDate.length - 5), $(this).datepicker('option', 'monthNames')); 
     $(this).datepicker('option', 'defaultDate', new Date(iYear, iMonth, 1)); 
     $(this).datepicker('setDate', new Date(iYear, iMonth, 1)); 
    } 
} 

});

Was ich versuche, dies zu erreichen: it should look like this

Antwort

0

Werfen Sie einen Blick auf dieses jsFiddle ->https://jsfiddle.net/mLcpwdra/

Der Code:

html

<div id="datepicker"></div> 
<hr /> 
<div id="month"><p>Month:<span></span></p></div> 
<div id="year"><p>Year:<span></span></p></div> 
<div id="day"><p>Day:<span></span></p></div> 

js

var obj = { 
    init: function() 
    { 
    $('#datepicker').datepicker({ 
     onSelect : function(date_string,instance) 
     { 
     var date_obj = new Date(date_string); 
     $('#month span').text(String("00"+date_obj.getMonth()).slice(-2)); 
     $('#year span').text(date_obj.getFullYear()); 
     $('#day span').text(String("00"+date_obj.getDate()).slice(-2)); 
     } 
    }); 
    } 
}; 

$(document).ready(function(){ 
    obj.init(); 
}); 

Es ist ein Ausgangspunkt, aber denken Sie Ihren Bedürfnissen entspricht. Hope this

UPDATE hilft: Fiddle mit Jahr in YY "Format" ->https://jsfiddle.net/mLcpwdra/1/

+0

Das ist nicht benutzerfreundlich. Der Benutzer muss manuell auf die Pfeile klicken, um zu dem gewünschten Jahr zu gelangen, anstatt es auszuwählen. –

+0

** Ich betone, das ist ein Ausgangspunkt **. Sie können mit den Datepicker-Optionen selbst spielen, um sie zu optimieren. Ich denke, meine Geige zeigt Ihnen, wie man Datenstrings in Objekte verwaltet und diese Daten korrekt in ein dom-Element einfügt. – Nineoclick

+0

überprüfen Sie hier http://StackOverflow.com/A/10876767/7324164 –

0

Dies ist einer der Ansatz sein kann, um Ihre Anforderung, aber nicht löst es nicht genau.

geht hier den HTML-Code:

<select class="form-control" id="yearMonthInput"></select> 

hier das Javascript geht:

var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 

    for (i = new Date().getFullYear() ; i > 2008; i--) { 
     $.each(months, function (index, value) { 
      $('#yearMonthInput').append($('<option />').val(index + "_" + i).html(i + " " + value)); 
     });     
    } 

es ein Geben Sie versuchen! obwohl es nicht genau das ist, was Sie suchen.