【问题标题】:Jquery Datepicker - cssJquery Datepicker - css
【发布时间】:2017-02-08 14:47:39
【问题描述】:

有没有办法将月份输入类型显示为数字(即带有向上和向下箭头的文本框)而不是下拉菜单。

请帮忙。看我的演示:https://jsfiddle.net/sharmilashree/VBGKU/1067/

.ui-datepicker-calendar tr {
  text-align: center;
  padding: 0;
  background-color: #F6F6F6
}

【问题讨论】:

  • 请说明您是否要使用 Spinner 调整每个部分、日、月和年?查看更多:jqueryui.com/spinner 或者您是否在询问有关使用 HTML5 input type='number' 专门用于日期选择器显示中的月份?
  • 仅一年我就需要显示 HTML5 input type='number' 控件
  • 好的,不是月,而是年?而不是成为下拉菜单,而是成为微调器。你想使用 HTML5 元素 input type='number' 还是 jQuery UI Spinner?
  • 请找到我附上的图片。我所做的所有事情..唯一的事情是需要设置带有向上和向下箭头的年份文本框。

标签: jquery-ui jquery-plugins jquery-ui-datepicker datapicker jquerydatetimepicker


【解决方案1】:

这将是一个困难的解决方法。这不容易做到。这是我目前所拥有的:

https://jsfiddle.net/Twisty/ge6zh5es/6/

HTML

<p>Date:
  <input type="text" id="datepicker" class="Highlighted" />
</p>

JavaScript

$(function() {
  var minYear = 2006,
    maxYear = new Date().getFullYear();
  maxYear++;
  var $dp = $("#datepicker").datepicker({
    changeYear: true,
    dateFormat: "dd-mm-yy",
    yearRange: minYear + ':' + maxYear,
  });
  $dp.datepicker("setDate", "0");

  function changeSpinner($dpObj) {
    var $yearSpin = $("<input>");
    $yearSpin.addClass("ui-datepicker-year");
    $yearSpin.attr({
      type: "number",
      min: minYear,
      max: maxYear,
      value: new Date().getFullYear()
    }).data("handler", "selectYear").data("event", "change");
    $yearSpin.on("change", function() {
      console.log("Spinner Change Event.");
      var pDate = $dpObj.datepicker("getDate");
      pDate.setFullYear(parseInt(this.value));
      console.log("New Date: " + pDate);
      $dpObj.datepicker("setDate", pDate);
    });
    console.info("Created Spinner: ", $yearSpin);
    $dpObj.datepicker("widget").find(".ui-datepicker-year").replaceWith($yearSpin);
  }

  $("#datepicker").click(function() {
    changeSpinner($dp);
  }).change(function() {
    changeSpinner($db);
  });
});

这只适用于第一次。日期选择器本身没有任何我可以挂钩的事件来每次执行替换。我还必须添加一些函数来让这个新元素与 datepicker 一起正常工作。

我正在考虑删除标题栏项目并将它们分开。我将使用更多详细信息更新此答案。另一种选择是隐藏select 元素并在其上放置一个微调器。然后此微调器会更改选择元素。

【讨论】:

  • 感谢 Twisty 的帮助。第一次看起来不错,如果整个过程保持不变,那就太好了。同时,我也会根据您的意见从头开始尝试。如果您有任何解决方案,请提前分享谢谢..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
  • 2010-11-22
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-27
相关资源
最近更新 更多