2016-08-26 10 views
0

html5入力タイプ= 'date'は、Chromeで最新の無料jqgridで日付を入力するために使用されます。html5日付入力を合理的な年に制限する方法

20161のように5桁の日付を入力できます。 年月日は範囲 1940 .. current year + 2 yearsになるように修正するには?

無料jqgridの日付列テンプレート:

// search template from http://stackoverflow.com/questions/8710162/jqgrid-calendar-icon-not-showing-up-in-inline-editing-mode 
var DateTemplate = { 
    sorttype: 'date', 
    formatter: 'date', 
    formatoptions: { 
     srcformat: "Y-m-d", 
     //added according to http://www.trirand.com/blog/?page_id=393/bugs/date-problem 
     reformatAfterEdit: true 
    }, 
    editoptions: { 
     maxlength: 10, 
     size: 10, 
     dataInit: initDateEdit 
    }, 
    editable: true, 
    searchoptions: { 
     clearSearch: false,/
     // for the searching toolbar: 
     // http://stackoverflow.com/questions/34475094/how-to-make-html5-date-field-in-search-toolbar-to-respect-column-width 
     attr: { size: 10, type: "date", style: "width:11em;" }, 
     sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge'], 
     dataInit: initDateHtmlSearch, 
     size: 11   // for the advanced searching dialog 
    } 
}; 


// http://stackoverflow.com/questions/29194381/how-to-use-native-datapicker-in-both-form-and-row-editing-in-free-jqgrid 
// http://stackoverflow.com/questions/26040738/how-to-use-input-type-date-for-date-column-in-jqgrid 
var initDateEdit = function (elem, options) { 
    // we need get the value before changing the type 
    var orgValue = $(elem).val(), newformat, 
     cm = $(this).jqGrid("getColProp", options.name); 
    $(elem).attr("type", "date"); 
    if ((typeof Modernizr !== "undefined" && !Modernizr.inputtypes.date) || $(elem).prop("type") !== "date") { 
     $(elem).attr("type", "text"); // !!! important to make saving works correctly 
     $(elem).css({ width: "8em" }).datepicker({ 
      autoSize: true, 
      changeYear: true, 
      changeMonth: true, 
      showButtonPanel: true, 
      showWeek: true 
     }); 
    } else { 
     // convert date to ISO 
     if (orgValue !== "") { 
      newformat = cm.formatoptions !== null && cm.formatoptions.newformat ? 
       cm.formatoptions.newformat : 
       $(this).jqGrid("getGridRes", "formatter.date.newformat"); 
      $(elem).val($.jgrid.parseDate.call(this, newformat, orgValue, "Y-m-d")); 
     } 
     $(elem).css({ width: "10em" }); 
    } 
}; 
+0

使用 'min'をおよび終点の日付を指定する 'max'属性 – dandavis

答えて

2

は、要素の値の予想上限である最大と最小の属性を使用してください。

HTMLコード

<input type="date" name="bday" min="2014-05-11" max="2014-05-20">

あなたはあなたがこの便利referance確認することができ、それを

$(function(){ 
    var dtToday = new Date(); 

    var month = dtToday.getMonth() + 1; 
    var day = dtToday.getDate(); 
    var year = dtToday.getFullYear(); 

    if(month < 10) 
     month = '0' + month.toString(); 
    if(day < 10) 
     day = '0' + day.toString(); 

    var maxDate = year + '-' + month + '-' + day;  
    $('#txtDate').attr('max', maxDate); 
}); 

を達成するためにjQueryを使用する必要があります。

https://www.w3.org/TR/html-markup/input.date.html

+0

'min = '1900-01-01''では、キーボードから0001のような年を入力し、フォーカスをフィールド外に移動することができます。どのようにキーボードから悪い年のエントリを相殺するには? – Andrus

関連する問題