我有一个日期输入字段。如果选择的日期是今天,我正在努力让另一个输入字段禁用。我假设这是因为JS在输入后没有处理输入。
这是:
/directory/?m=some_page
答案 0 :(得分:3)
您应该使用onchange
事件。这应该适合你:
var date = new Date();
var dd = date.getDate();
var mm = date.getMonth()+1;
var yyyy = date.getFullYear();
var hrs = date.getHours();
if(dd<10) {
dd='0'+dd
}
if(mm<10) {
mm='0'+mm
}
date = yyyy+'-'+mm+'-'+dd;
function dateEntered(obj){
var userDateEntry = obj.value;
if (hrs >= 10 && userDateEntry == date) {
alert("Shipping for today has ended. Your order will arrive tomorrow");
document.getElementById('inputTime').disabled= true;
}
else{
document.getElementById('inputTime').disabled= false;
}
}
&#13;
<input type="date" name="DateName" id="inputID" onchange="dateEntered(this)" />
<input type="time" name="TimeName" id="inputTime" />
&#13;
答案 1 :(得分:0)
在函数内移动:
var date = new Date();
var dd = date.getDate();
var mm = date.getMonth()+1;
var yyyy = date.getFullYear();
var hrs = date.getHours();
if(dd<10) {
dd='0'+dd
}
if(mm<10) {
mm='0'+mm
}
date = yyyy+'-'+mm+'-'+dd;
function dateEntered(){
var userDateEntry = document.getElementById('inputID').value;
if (hrs >= 10 && userDateEntry == date) {
alert("Shipping for today has ended. Your order will arrive tomorrow");
document.getElementById('inputTime').disabled= true;
}
else{
document.getElementById('inputTime').disabled= false;
}
}
否则,它永远不会使用当前值进行更新。
<input type="date" name="DateName" id="inputID" onkeydown="dateEntered(this)" />
<input type="time" name="TimeName" id="inputTime" />
&#13;
{{1}}&#13;
答案 2 :(得分:0)
你需要在输入后获取值,所以你需要在dateEntered函数内部而不是keydown我会使用onblur(当字段失去焦点时)。此外,由于您通过this
,您可以在函数内使用它。
小提琴:http://jsfiddle.net/pv5e76dv/3/
HTML:
<input type="date" name="DateName" id="inputID" onblur="dateEntered(this)"/>
<input type="time" name="TimeName" id="inputTime" />
JS:
function dateEntered(element){
var date = new Date();
var dd = date.getDate();
var mm = date.getMonth() + 1;
var yyyy = date.getFullYear();
var hrs = date.getHours();
var userDateEntry = element.value;
if(dd<10) {
dd='0'+dd
}
if(mm<10) {
mm='0'+mm
}
date = yyyy+'-'+mm+'-'+dd;
if (hrs >= 10 && userDateEntry == date) {
alert("Shipping for today has ended. Your order will arrive tomorrow");
document.getElementById('inputTime').disabled= true;
}
else{
document.getElementById('inputTime').disabled= false;
}
}