我试图在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>
我将其作为警告获取......但无法将其作为字符串存储在同一页面上
答案 0 :(得分:7)
为什么要放松你的头?
对于设备对它的解释,<input type="date">
总是会有所不同,在某些Android设备中它甚至都不起作用,
有很多插件,插件,无论如何,
我个人喜欢,并使用mobiscroll:Link
编辑:Mobiscroll现已付费,但有大量免费的前端移动框架,可能所有人都有一个日期选择器,例如jQuery Mobile-datepicker。
答案 1 :(得分: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"/>
像魅力一样!希望它有所帮助!!
答案 2 :(得分:2)
我想要发生的事情很简单 - 我只想在点击某个字段时显示一个日期选择器。
然而,和Aleks一样,我不知道在html中放什么,如何在html中使用它,以及我应该在html中放置什么以在某些输入上调用datepicker。
plugin的文档不完整。
我找到了test project的解决方案。 步骤如下:
$ cordova plugin add org.apache.cordova.device
$ cordova plugin add https://github.com/DURK/cordova-datepicker-plugin
showDatePicker(), showDateTimePicker()
便利功能。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>
答案 3 :(得分: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();
});
});
答案 4 :(得分:1)
如果有可用的日期选择器,您为什么要实施自定义日期选择器?
您只需使用<input type="date">
创建常用的iOS日期选择器。
有关移动设备上输入字段的更多信息,我建议:http://blog.teamtreehouse.com/using-html5-input-types-to-enhance-the-mobile-browsing-experience