GetDate с JQuery Datepicker
Я пытаюсь получить дату из моей реализации jquery date picker, добавить его в строку и отобразить результирующее изображение в моем div. Что-то, однако, просто не работает. Может ли кто-нибудь проверить код и посмотреть на него?
Предполагается, что код принимает дату из набора даты, объединяет его в строку, которая должна содержать необходимый код для отображения тега, изображения расположены в /image и в формате aYY-MM-DD.png, new к этому сборщику дат и не может полностью его убрать.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link type="text/css" href="css/ui-lightness/jquery-ui-1.8.custom.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.custom.min.js"></script>
<script type="text/javascript">
$(function(){
// Datepicker
$('#datepicker').datepicker({
dateFormat: 'yy-mm-dd',
inline: true,
minDate: new Date(2010, 1 - 1, 1),
maxDate:new Date(2010, 12 - 1, 31),
altField: '#datepicker_value',
});
//hover states on the static widgets
$('#dialog_link, ul#icons li').hover(
function() { $(this).addClass('ui-state-hover'); },
function() { $(this).removeClass('ui-state-hover'); }
);
});
//var img_date = .datepicker('getDate');
var day1 = $("#datepicker").datepicker('getDate').getDate();
var month1 = $("#datepicker").datepicker('getDate').getMonth() + 1;
var year1 = $("#datepicker").datepicker('getDate').getFullYear();
var fullDate = year1 + "-" + month1 + "-" + day1;
var str_output = "<h1><center><img src=\"/images/a" + fullDate + ".png\"></center></h1><br/><br>";
page_output.innerHTML = str_output;
// writing the results to the div element (page_out)
</script>
</head>
<body style="background-color:#000;color:#fff;margin: auto auto;">
<!-- Datepicker -->
<div id="datepicker"></div>
<!-- Highlight / Error -->
<p>Date Value: <input type="text" id="datepicker_value" /></p>
<div id="page_output" style="text-align:center; margin-top:80px; margin-bottom:20px; "></div>
</body>
Ответы
Ответ 1
Я думаю, вы хотели бы добавить обработчик события onSelect для инициализации своего датпикера, чтобы ваш код запускался, когда пользователь выбирает дату. Попробуйте на jsFiddle
$(document).ready(function(){
// Datepicker
$('#datepicker').datepicker({
dateFormat: 'yy-mm-dd',
inline: true,
minDate: new Date(2010, 1 - 1, 1),
maxDate:new Date(2010, 12 - 1, 31),
altField: '#datepicker_value',
onSelect: function(){
var day1 = $("#datepicker").datepicker('getDate').getDate();
var month1 = $("#datepicker").datepicker('getDate').getMonth() + 1;
var year1 = $("#datepicker").datepicker('getDate').getFullYear();
var fullDate = year1 + "-" + month1 + "-" + day1;
var str_output = "<h1><center><img src=\"/images/a" + fullDate +".png\"></center></h1><br/><br>";
$('#page_output').html(str_output);
}
});
});
Ответ 2
Эта строка выглядит сомнительной:
page_output.innerHTML = str_output;
Вы можете использовать .innerHTML
в jQuery, или вы можете использовать его без него, но вы должны выбрать селектор семантически так или иначе:
$('#page_output').innerHTML /* for jQuery */
document.getElementByID('page_output').innerHTML /* for standard JS */
или еще лучше
$('#page_output').html(str_output);
Ответ 3
попробовать
$('#page_output').html(str_output);
Ответ 4
Вместо синтаксического анализа день, месяц и год вы можете напрямую определять форматы даты, используя функцию datepicker formatDate. В моем примере я использую "yy-mm-dd", но вы можете использовать любой формат по вашему выбору.
$("#datepicker").datepicker({
dateFormat: 'yy-mm-dd',
inline: true,
minDate: new Date(2010, 1 - 1, 1),
maxDate: new Date(2010, 12 - 1, 31),
altField: '#datepicker_value',
onSelect: function(){
var fullDate = $.datepicker.formatDate("yy-mm-dd", $(this).datepicker('getDate'));
var str_output = "<h1><center><img src=\"/images/a" + fullDate +".png\"></center></h1><br/><br>";
$('#page_output').html(str_output);
}
});
Ответ 5
Вы можете отформатировать дату jquery с помощью этой строки:
moment($(elem).datepicker('getDate')).format("YYYY-MM-DD");
http://momentjs.com