会议室预定简单功能实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | 以下是一个基于jQuery UI的简单预定会议室的页面: ```html <!DOCTYPE html> <html> <head> <meta charset= "UTF-8" > <title>会议室预定</title> <link rel= "stylesheet" href= "https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css" > <style> .ui-timepicker-standard { font-family: Arial; font-size: 14px; width: 100%; } .ui-datepicker { margin-top: 12px; } .ui-timepicker-list li { cursor: pointer; } #availableTimeslots { margin-top: 20px; border: 1px solid #ccc; height: 400px; overflow-y: auto; padding: 10px; } .timeslot { border: 1px solid #ccc; padding: 5px; margin-bottom: 5px; background-color: #f9f9f9; cursor: pointer; } .timeslot.unavailable { background-color: #ddd; cursor: not-allowed; } .timeslot.selected { background-color: #428bca; color: #fff; } #reserveBtn { margin-top: 20px; padding: 10px; background-color: #428bca; color: #fff; border: none; cursor: pointer; } #reserveBtn:hover { background-color: #3071a9; } </style> </head> <body> <h1>会议室预定</h1> <div> <label for = "datepicker" >日期:</label> <input type= "text" id= "datepicker" > <label for = "starttimepicker" >开始:</label> <input type= "text" id= "starttimepicker" > <label for = "endtimepicker" >结束:</label> <input type= "text" id= "endtimepicker" > <button id= "addToCartBtn" disabled>加入预定</button> </div> <div id= "availableTimeslots" ></div> <div> <button id= "reserveBtn" disabled>预定会议室</button> </div> <script src= "https://code.jquery.com/jquery-3.5.1.min.js" ></script> <script src= "https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" ></script> <script> $(document).ready(function () { // Datepicker $( "#datepicker" ).datepicker({ minDate: 0, onSelect: function (dateText, inst) { updateAvailableTimeslots(dateText); } }); // Timepicker $( '#starttimepicker,#endtimepicker' ).timepicker({ timeFormat: 'HH:mm' , interval: 30, dropdown: true , scrollbar: true , minTime: '8:00' , maxTime: '22:00' , dynamic: false , change: function (time) { var startTime = $( '#starttimepicker' ).val(); var endTime = $( '#endtimepicker' ).val(); // 检查选择的时间段是否在可预定时间范围内 if (startTime < '8:00' || endTime > '22:00' || startTime >= endTime) { $( '#startdatepicker,#enddatepicker' ).val( '' ); $( '#addToCartBtn' ).prop( 'disabled' , true ); } else { updateAvailableTimeslots($( '#datepicker' ).val()); } } }); // 拖拽选择时间段 $(document). on ( 'mousedown' , '.timeslot' , function (e) { $( '.timeslot' ).removeClass( 'selected' ); $( this ).addClass( 'selected' ); $( '#reserveBtn' ).prop( 'disabled' , false ); $( '#addToCartBtn' ).prop( 'disabled' , true ); } ); // 预定会议室 $( '#reserveBtn' ). on ( 'click' , function () { var selectedTimeslot = $( '.timeslot.selected' ); var date = $( '#datepicker' ).val(); var startTime = $( '#starttimepicker' ).val(); var endTime = $( '#endtimepicker' ).val(); alert(`您预定了 ${date} ${startTime}-${endTime} 的会议室`); selectedTimeslot.removeClass( 'available' ).addClass( 'unavailable' ).removeClass( 'selected' ); $( '#reserveBtn' ).prop( 'disabled' , true ); }); }); function updateAvailableTimeslots(date) { $( '#availableTimeslots' ).html( '' ); var startTime = $( '#starttimepicker' ).val(); var endTime = $( '#endtimepicker' ).val(); if (startTime && endTime) { var startHour = parseInt(startTime.split( ':' )[0]); var endHour = parseInt(endTime.split( ':' )[0]); for ( var hour = startHour; hour < endHour; hour++) { var timeslot = $( '<div></div>' ).addClass( 'timeslot available' ); timeslot.text(hour + ':00 - ' + (hour + 1) + ':00' ); $( '#availableTimeslots' ).append(timeslot); } } else { $( '#addToCartBtn' ).prop( 'disabled' , true ); } } </script> </body> </html> ``` 在这个实现中,用户可以选择预定日期和开始结束时间,并在可预定时间范围内拖拽选择时间段。预定按钮将被激活并点击后会展示一个简单的提示信息,并将已选择的时间段设置为不可预定。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术