我通过拖动时隙单元格来选择时隙。选择时间段后,我在文本框中输入姓名,然后为该时间段分配患者预约。我必须在数据库中插入患者姓名(abc)、开始时间(上午 8:00 0)和结束时间(上午 8:00 30)。我如何在 jquery 中获取这三个值。
3 回答
在我看来,要使时间表看起来很棒并在各种浏览器上提供良好的用户体验,还有很多工作要做。也许您可以使用 jQuery 完整日历 ( http://arshaw.com/fullcalendar/ ) 并对其进行自定义以满足您的需求。
这是一个在一天内创建时间事件的演示:
http://arshaw.com/js/fullcalendar-1.5.3/demos/selectable.html
使用新的HTML5 time
元素(文档)。然后很容易用jQuery获取时间。
这是有关如何获取第一个选定单元格和最后一个选定单元格的完整示例。在用户单击更新按钮后进行选择。
<!doctype html>
<html>
<head>
<script
src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js">
</script>
<script
src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.0.6-development-only.js">
</script>
<script>
$(function () {
var start = $("td.csstdhighlight:first > time").attr("datetime");
var end = $("td.csstdhighlight:last > time").attr("datetime");
});
</script>
</head>
<body>
<table border="1">
<tr><td class="csstdhighlight">
<time datetime="2000-01-01 08:00:00">00</time>
</td></tr>
<tr><td class="csstdhighlight">
<time datetime="2000-01-01 08:15:00">15</time>
</td></tr>
<tr><td class="csstdhighlight">
<time datetime="2000-01-01 08:30:00">30</time>
</td></tr>
<tr><td><time datetime="2000-01-01 08:45:00">45</time></td></tr>
</table>
</body>
</html>
请注意,如果您想支持 Internet Explorer 8 或更低版本,您需要确保 IE 将新的 HTML5time
元素视为应有的内容。最简单的选择是包含上面示例中的Modernizr 库,或者如果您想了解详细信息,可以阅读博客文章 How to get HTML5 working in IE and Firefox 2。
通过一些轻微的 html 修改,例如向时间单元格和一些数据属性添加一个类,您可以利用jQuery.data()
和使用类来简化定位单元格
<td class="csstablelisttd time" data-hour="9" data-minute="45"> 45 </td>
当“slot”已被预订时,向其添加一个标识它已被预订的类。将患者姓名作为数据存储到时间单元中,您可以执行以下操作:
$('button').click(function() {
var msg = 'No Bookings',
$booked = $('.booked');
if ($booked.length) {
msg = [];
$booked.each(function() {
var data = $(this).data()
msg.push(data.hour + ':' + data.minute + ' - ' + data.patient)
})
msg = msg.join('\n');
}
alert(msg)
})
这是一个使用时间单元上的单击事件的非常简化但有效的版本。您的鼠标选择方法似乎不起作用,并且单击对用户更友好。这不会完成您的整个应用程序,但应该会给您一些未来的想法