Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从onchange中获取价值?_Javascript_Date_Onchange - Fatal编程技术网

Javascript 如何从onchange中获取价值?

Javascript 如何从onchange中获取价值?,javascript,date,onchange,Javascript,Date,Onchange,嗨,我基本上是试图禁用另一个输入字段,如果从另一个输入字段(日期)将日期设置为今天。我似乎无法将onchange强制到输入字段中,并将该值捕获到变量中以使其工作 我已经成功地将onchange(this)放到了输入字段中,但是我必须将它取出,并强制将jsonchange放到输入字段中 我尝试了以下代码。如您所见,当时间超过上午10点并且日期被选择为今天时,它应该做一些事情: <script> var date = new Date(); var dd = date.g

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

我已经成功地将onchange(this)放到了输入字段中,但是我必须将它取出,并强制将jsonchange放到输入字段中

我尝试了以下代码。如您所见,当时间超过上午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" />

变量日期=新日期();
var dd=date.getDate();
var mm=date.getMonth()+1;
var yyyy=date.getFullYear();
var hrs=date.getHours();

如果(dd未正确附加事件。请使用
addEventListener
附加事件

小提琴:

var-date=新日期();
var dd=date.getDate();
var mm=date.getMonth()+1;
var yyyy=date.getFullYear();
var hrs=date.getHours();
如果(dd<10){
dd='0'+dd
}
如果(毫米<10){
毫米='0'+毫米
}
日期=yyyy+'-'+mm+'-'+dd;
var userDateEntry=document.getElementById(“fm_deliverydate”);
userDateEntry.addEventListener('change',
函数(){
如果(小时数>=10&&userDateEntry.value==date){
警报(“今天的发货已结束。您的订单将于明天到达”);
document.getElementById('fm_deliverytime')。disabled=true;
}否则{
document.getElementById('fm_deliverytime')。disabled=false;
}
}
);

尝试将事件侦听器添加到元素中,并在其更改时启动函数。试一试。您还可以考虑添加一个输入日期低于当前日期的情况。现在可以输入日期,仍然可以输入时间。

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

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

(function(){
    document.getElementById("fm_deliverydate").onchange =  function() {
       dateEntered();
    }
})();

function dateEntered(){
    var userDateEntry = document.getElementById("fm_deliverydate").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>

变量日期=新日期();
var dd=date.getDate();
var mm=date.getMonth()+1;
var yyyy=date.getFullYear();
var hrs=date.getHours();

如果(dd如果您想将onclick事件监听器添加到html中,那么您实际上只需要删除您在dateenter函数中附加的onchange方法并将其移动到html中,然后就没有其他更改了

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("fm_deliverydate").value;

    if (hrs >= 10 && userDateEntry == date) {
        document.getElementById('fm_deliverytime').disabled = true;
    } else {
        console.log('shipping enabled');
        document.getElementById('fm_deliverytime').disabled = false;
    };
}
var-date=新日期();
var dd=date.getDate();
var mm=date.getMonth()+1;
var yyyy=date.getFullYear();
var hrs=date.getHours();

如果(dd)您在哪里添加
change
侦听器?调用
dateEntered
的位置在哪里?正如所写,此代码没有意义。是的,我没有看到
dateEntered()之间的关系
和您的输入元素。您如何注册
onchange
处理程序?您的代码中缺少一些关键元素。我最初在输入onchange中使用了dateenter()方法,我将其取出。我忘记了在脚本中处理此函数!
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("fm_deliverydate").value;

    if (hrs >= 10 && userDateEntry == date) {
        document.getElementById('fm_deliverytime').disabled = true;
    } else {
        console.log('shipping enabled');
        document.getElementById('fm_deliverytime').disabled = false;
    };
}
<input  onchange="dateEntered()" type="date" name="DateName" id="fm_deliverydate" placeholder="yyyy-mm-dd"/>

<input  type="time" name="TimeName" id="fm_deliverytime" placeholder="enter date"/>