在 django 中使用 Datepicker(来自 Jquery)
Posted
技术标签:
【中文标题】在 django 中使用 Datepicker(来自 Jquery)【英文标题】:Using Datepicker (from Jquery) in django 【发布时间】:2015-02-07 15:40:03 【问题描述】:我想以这种方式在 django 上使用 Datepicker(来自 Jquery):
通过“views.py”,我从 mysql DB 发送日期列表。 当用户选择的日期等于我在数据库中的日期之一时,我想显示一条消息。
我怎样才能做到这一点? (使用 Django、Jquery 和 AJAX)
到目前为止我的代码:
% block head %
<link href="STATIC_URLcss/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="STATIC_URLjs/jquery1.min.js"></script>
<script src="STATIC_URLjs/jquery-ui.min.js"></script>
<script>
$(function()
$( "#datepicker" ).datepicker(
showOtherMonths: true,
selectOtherMonths: true,
dateFormat: 'dd/mm/yy',
changeMonth: true,
changeYear: true,
);
date = $( "#datepicker" ).datepicker('getDate');
);
</script>
% endblock %
% block body_block %
<br/><br/><br/><br/><br/><br/><br/>
<form id="form" name="form" action="/home/" method="get">
<label>Choose Date</label>
<br/>
<input style="color:black" id="datepicker"/>
<br/><br/>
</form>
% for date in dates %
...............
谢谢。
【问题讨论】:
【参考方案1】:这是一个工作示例: http://jsfiddle.net/njsmu356/
将所有日期添加到 div 并将其隐藏。
<div id="dateDiv" style="display:none;">
<ul id="dates">
% for date in dates %
<li>date</li>
% endfor %
</ul>
</div>
然后使用 jQuery 查找所选日期与 <li>
中的日期的匹配。
$('#datepicker').change(function()
// Get the value of date field
var dateValue = $('#datepicker').val();
// Make and empty list
var dateList = [];
// Append all dates from <li> to dateList
$("#dates li").each(function()
dateList.push($(this).text());
);
// Perform the match
if ($.inArray(dateValue, dateList ) > -1)
alert("Date matched!!!");
else
alert("Sorry. Try again.");
);
注意:
确保所选日期的格式与您从视图中发送的日期格式相同。您可能还需要验证日期的输入值。一些 jQuery 表单验证插件会有所帮助。
更新
既然你想用 AJAX 来做这件事,已经有很多答案可以完成类似的功能。
-
Django: ajax response for valid/available username/email during registration
AJAX username validation in Django
And a lot here
【讨论】:
嗨@xyres。我敢肯定有一种更优雅的方式。在我看来,这不是很有效和安全。我的想法是在所有日期中运行,直到我的数据库中的日期等于用户从日期选择器中选择的日期。如果您可以向我展示使用 ajax 的方法,那将对我非常有帮助。谢谢! 那么你应该在你的问题中写上ajax
。你写了“我正在发送一个日期列表......” - 你模板中的 for
循环让我感到困惑。好的,当我登录我的桌面时会更新我的答案。目前正在使用手机。
@user3731023 更新了答案。以上是关于在 django 中使用 Datepicker(来自 Jquery)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django 应用程序中使用 bootstrap-datepicker?
在一个页面中使用带有多个 django 表单的 jQuery datepicker
django admin 1.7 + django-grappelli 2.6.1 中的 jQuery datepicker 本地化
django 使用第三方js库“My97DatePicker”作为时间选择插件