输入的Javascript日期做了一些事情

时间:2015-11-09 20:22:21

标签: javascript date input

我有一个日期输入字段。如果选择的日期是今天,我正在努力让另一个输入字段禁用。我假设这是因为JS在输入后没有处理输入。

这是:

/directory/?m=some_page

3 个答案:

答案 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;
&#13;
&#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;
    }
}

否则,它永远不会使用当前值进行更新。

&#13;
&#13;
<input  type="date" name="DateName" id="inputID" onkeydown="dateEntered(this)" />

<input  type="time" name="TimeName" id="inputTime" />
&#13;
{{1}}
&#13;
&#13;
&#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;
    }
}