用layui的时间框组件写一个选取日期范围的功能,且结束日期不能早于开始日期
时间: 2024-02-09 21:09:36 浏览: 133
好的,以下是一个基于layui的时间框组件实现选取日期范围的功能,且结束日期不能早于开始日期的示例代码:
HTML代码:
```html
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-md6 layui-col-md-offset3">
<div class="layui-form-item">
<label class="layui-form-label">开始日期</label>
<div class="layui-input-block">
<input type="text" class="layui-input" id="startDate" placeholder="请选择开始日期" autocomplete="off">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">结束日期</label>
<div class="layui-input-block">
<input type="text" class="layui-input" id="endDate" placeholder="请选择结束日期" autocomplete="off">
</div>
</div>
<div class="layui-form-item">
<button class="layui-btn" id="submitBtn">提交</button>
</div>
</div>
</div>
</div>
```
CSS代码:
```css
.layui-container {
margin-top: 50px;
}
.layui-col-md6 {
border: 1px solid #e6e6e6;
border-radius: 5px;
box-shadow: 0 0 5px #e6e6e6;
padding: 20px;
}
.layui-form-item {
margin-bottom: 20px;
}
```
JavaScript代码:
```javascript
layui.use(['laydate', 'form'], function(){
var laydate = layui.laydate;
var form = layui.form;
// 初始化时间选择器
laydate.render({
elem: '#startDate',
type: 'date',
done: function(value, date){
// 开始日期选择完毕后,重新渲染结束日期选择器
endDatePicker.config.min = value;
endDatePicker.render();
}
});
var endDatePicker = laydate.render({
elem: '#endDate',
type: 'date',
done: function(value, date){
// 结束日期选择完毕后,判断结束日期是否早于开始日期
var startDate = new Date($('#startDate').val());
var endDate = new Date(value);
if (endDate < startDate) {
layer.msg('结束日期不能早于开始日期!', {icon: 2});
$('#endDate').val('');
}
}
});
// 监听表单提交事件
form.on('submit', function(data){
// 获取选取的日期范围
var startDate = $('#startDate').val();
var endDate = $('#endDate').val();
console.log('开始日期:' + startDate + ',结束日期:' + endDate);
return false;
});
});
```
在 JavaScript 中,我们使用了 `layui.use` 方法加载了 `laydate` 和 `form` 模块,并在回调函数中初始化了开始日期和结束日期的时间选择器,并监听了开始日期选择完毕后的回调函数,重新渲染了结束日期选择器,并在结束日期选择完毕后的回调函数中判断了结束日期是否早于开始日期。在表单提交事件中,我们获取了选取的日期范围,并在控制台输出。
阅读全文