3 回答
TA贡献1805条经验 获得超10个赞
将 fdate 更改为 tdate
document.getElementById("fDate").setAttribute("min", minToDate);
到
document.getElementById("tDate").setAttribute("min", minToDate);
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; //January is 0!
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd
}
if (mm < 10) {
mm = '0' + mm
}
today = yyyy + '-' + mm + '-' + dd;
document.getElementById("fDate").setAttribute("min", today);
function myFunction() {
var minToDate = document.getElementById("fDate").value;
document.getElementById("tDate").setAttribute("min", minToDate);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<input type="date" id="fDate" onBlur="myFunction()">
<input type="date" id="tDate">
TA贡献1893条经验 获得超10个赞
您想要将最小值设置为第二个日期选择器,因此您需要获取该元素:
function myFunction() {
var minToDate = document.getElementById("fDate").value;
document.getElementById("tDate").setAttribute("min", minToDate);
}
TA贡献1872条经验 获得超3个赞
你的逻辑不起作用,因为你将 min 设置为fDate,而不是tDate。
您还应该避免使用内联onX事件属性,因为它们已经过时并且不再是良好的做法。请改用不显眼的事件处理程序。由于接受 Date 对象,因此可以进一步简化逻辑min,因此您不需要修改 Date 对象来形成字符串。
还值得注意的是,该min设置不会阻止用户输入该值之前的日期。它仅在提交表单时用于验证,正如您在下面的示例中Submit单击按钮时看到的那样。
let fDate = document.querySelector('#fDate');
let tDate = document.querySelector('#tDate');
fDate.addEventListener('change', function() {
tDate.min = this.value;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<form>
<input type="date" id="fDate" />
<input type="date" id="tDate" />
<button>Submit</button>
</form>
- 3 回答
- 0 关注
- 142 浏览
添加回答
举报