如何从onchange中获取价值?

Jns*_*sn_ 5 javascript date onchange

嗨,如果从另一个输入字段(日期)将日期设置为今天,我基本上是在尝试禁用另一个输入字段。我似乎无法将 onchange 强加到输入字段并将该值抓取到变量中以使其工作。

我已经成功地将 onchange(this) 放在输入字段上,但我必须将其取出并强制将 JS onchange 放到它上面。

我试过下面的代码。如您所见,当时间超过上午 10 点并且日期选择为今天时,它应该做一些事情:

<script>
    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;


    var userDateEntry = document.getElementById("fm_deliverydate").onchange().value;

    if (hrs >= 10 && userDateEntry == date) {
        alert("Shipping for today has ended. Your order will arrive tomorrow");
        document.getElementById('fm_deliverytime').disabled= true;
    }
    else{
        document.getElementById('fm_deliverytime').disabled= false;
    }
</script>

<input  type="date" name="DateName" id="fm_deliverydate" />

<input  type="time" name="TimeName" id="fm_deliverytime" />
Run Code Online (Sandbox Code Playgroud)

Ath*_*ace 3

您没有正确附加事件。您可以使用 附加事件addEventListener

小提琴:http://jsfiddle.net/AtheistP3ace/125jnvwp/1/

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;

var userDateEntry = document.getElementById("fm_deliverydate");
userDateEntry.addEventListener('change',
    function () {
        if (hrs >= 10 && userDateEntry.value == date) {
            alert("Shipping for today has ended. Your order will arrive tomorrow");
            document.getElementById('fm_deliverytime').disabled = true;
        } else {
            document.getElementById('fm_deliverytime').disabled = false;
        }
    }
);
Run Code Online (Sandbox Code Playgroud)