写一个html下拉框选个年报、季报和月报,再写一个时间选择器当下拉选择年报时选择器便只选年月(yyyy-MM)类型,当下了选择季报时,时间选择器变成年月为2023-03/2023-06的形式,当选择年报时,则时间选择器变成只需传输年份2023形式,不要用jquery
时间: 2024-02-21 09:00:41 浏览: 129
好的,我来帮你写一个这样的HTML代码。请看下面的代码:
```
<!DOCTYPE html>
<html>
<head>
<title>选择报表类型和时间</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<label for="report_type">报表类型:</label>
<select id="report_type" onchange="changeDatepicker()">
<option value="yearly">年报</option>
<option value="quarterly">季报</option>
<option value="monthly">月报</option>
</select>
<label for="datepicker">时间:</label>
<input type="text" id="datepicker" readonly>
<script>
function changeDatepicker() {
var reportType = document.getElementById("report_type").value;
var datepicker = document.getElementById("datepicker");
if(reportType == "yearly") {
datepicker.setAttribute("placeholder", "请输入年份(例如:2023)");
datepicker.setAttribute("min", "2023");
datepicker.setAttribute("max", "9999");
datepicker.setAttribute("pattern", "[0-9]{4}");
} else if(reportType == "quarterly") {
datepicker.setAttribute("placeholder", "请选择年月(例如:2023-03)");
datepicker.removeAttribute("min");
datepicker.removeAttribute("max");
datepicker.setAttribute("pattern", "20[2-9][3-9]-0[1,4]");
} else if(reportType == "monthly") {
datepicker.setAttribute("placeholder", "请选择年月(例如:2023-01)");
datepicker.removeAttribute("min");
datepicker.removeAttribute("max");
datepicker.setAttribute("pattern", "20[2-9][3-9]-(0[1-9]|1[0-2])");
}
}
</script>
</body>
</html>
```
这段代码中,我们使用了原生JavaScript来实现动态改变datepicker的属性。当下拉框选项发生变化时,我们通过change事件来调用changeDatepicker函数,根据选择的报表类型来动态改变datepicker的属性。在年报类型下,我们只需要输入年份,因此我们用placeholder属性来提示输入格式,同时设置min和max属性来限制输入范围,pattern属性来限制输入格式。而在季报和月报类型下,我们需要选择年月,因此我们同样用placeholder属性来提示输入格式,同时移除了min和max属性,改变了pattern属性来限制输入格式。
希望这个代码对你有所帮助!
阅读全文