3

我试图在android中实现日期选择器。我希望它获取数据并以文本格式显示

  <html>
  <head>
    <script type="text/javascript" charset="utf-8" src="cordova-2.5.0.js"></script>
    <script type="text/javascript" charset="utf-8" src="datePickerPlugin.js"></script>
  <script type="text/javascript" charset="utf-8">

  function dateTest() {
      var myNewDate = new Date();

      window.plugins.datePicker.show({
          date : myNewDate,
          mode : 'date', // date or time or blank for both
          allowOldDates : true
      }, function(returnDate) {
        var newDate = new Date(returnDate);
            currentField.val(newDate.toString("dd/MMM/yyyy"));

            // This fixes the problem you mention at the bottom of this script with it not working a second/third time around, because it is in focus.
            currentField.blur();
      });
  }
</script>
</head>
<body bgcolor="#ffffff">
<hr>DatePicker Test<hr><br>
     <input type="button" onClick ="dateTest()" value ="Today's Date!!" />
     <div id="view"></div>
</body>
</html>

我将其作为警报...但无法将其作为字符串存储在同一页面上

4

5 回答 5

7

为什么要松开你的头?

A<input type="date">将始终取决于设备对它的解释,在某些 android 设备中它甚至不起作用,

有很多插件,插件,等等,

我个人喜欢并使用 mobiscroll:链接

编辑:Mobiscroll现在是付费的,但是有很多免费的前端移动框架,并且可能所有这些框架都有一个 datepicker,比如jQuery Mobile-datepicker

于 2013-06-21T09:06:40.430 回答
2

看来您的 currentField 未定义。您在 AVD 上运行之前检查过 chrome 控制台吗?请尝试发布您尝试显示日期的元素。

现在,我假设您正在尝试执行以下代码的操作

$('.nativedatepicker').focus(function(event) {
            var currentField = $(this);
            var myNewDate = new Date(Date.parse(currentField.val())) || new Date();

            // Same handling for iPhone and Android
            window.plugins.datePicker.show({
                date : myNewDate,
                mode : 'date', // date or time or blank for both
                allowOldDates : true
            }, function(returnDate) {
                var newDate = new Date(returnDate);
                var newString = newDate.toString();
                newString = newString.substring(0,15);
                currentField.val(newString);
                // This fixes the problem you mention at the bottom of this script with it not working a second/third time around, because it is in focus.
                currentField.blur();
            });
        });

元素如下

<input type="text" class="nativedatepicker" readonly value = "Fri Jun 21 2013"/>

奇迹般有效 !!希望能帮助到你 !!

于 2013-06-21T17:17:25.537 回答
2

我想要发生的事情很简单——我只想在单击某个字段时显示一个日期选择器。

然而,和 Aleks 一样,我不知道在我的 html 中放什么,如何在 html 中使用它,以及我应该在 html 中放什么以在某些输入上调用 datepicker。

插件中的文档不完整。

我从这个测试项目中找到了解决方案。步骤如下:

  1. 先决条件:已安装 phonegap/cordova-cli
  2. 安装 Cordova 的设备插件:$ cordova plugin add org.apache.cordova.device
  3. 安装 Dirk 的datepicker插件:$ cordova plugin add https://github.com/DURK/cordova-datepicker-plugin
  4. 从测试项目中复制nativedatepicker.js并将其放在项目的js文件夹中。该文件具有showDatePicker(), showDateTimePicker()便利功能。
  5. 添加ff。编码index.html

注意:当您在浏览器中测试时,日期选择器不会显示

....
    <div class="form-group">
      <label>Appointment</label>
      <input type="text" class="form-control datepicker" id="appointment">
    </div>
....
<script src="js/nativedatepicker.js"></script>
<script src="cordova.js"></script>
<script type="text/javascript">
    (function($){
        $(document).ready(function () {
            $(document).on('click', '.datepicker', function () {
                showDatePicker($(this), 'date');
            });

            $(document).on('click', '.timepicker', function () {
                showDatePicker($(this), 'time');
            });

            $(document).on('click', '.datetimepicker', function () {
                if (device.platform === "Android")
                    showDateTimePicker($(this));
                else
                    showDatePicker($(this), 'datetime');
            });
        });
    })(jQuery);
</script>
于 2014-09-25T05:02:43.193 回答
1

这是我的工作实现。输入类型为文本,只读。

$('.nativedatepicker').focus(function(event) {
        var currentField = $(this);
        var myNewDate = new Date();
        window.plugins.datePicker.show({
            date : myNewDate,
            mode : 'date',
            allowOldDates : true
        }, function(returnDate) {
            var array = returnDate.split("/");
            var day = array[2], month = array[1];
            if (day <= 9)
                day = "0" + day;
            if (month <= 9)
                month = "0" + month;
            currentField.val(array[0] + "/" + month + "/" + day);
            currentField.blur();
        });
    });
于 2013-06-21T08:17:28.483 回答
1

如果有可用的本地选择器,为什么要实现自定义日期选择器?

您可以简单地使用<input type="date">来创建众所周知的 iOS 日期选择器。

有关移动设备上输入字段的更多信息,我建议:http ://blog.teamtreehouse.com/using-html5-input-types-to-enhance-the-mobile-browsing-experience

于 2013-06-21T08:24:12.353 回答