Javascript 从对象HTMLInputElement获取文本

Javascript 从对象HTMLInputElement获取文本,javascript,jquery,html,Javascript,Jquery,Html,DateFunction在id为datelate的文本输入中设置今天的日期。 然后,日期作为对象HTMLInputElement存储在addLate函数中的日期变量中。每次我试图提取存储在变量中的日期时,它都会显示:[object HTMLInputElement],而不是实际日期。如何仅从输入中获取实际日期 Javascript: window.onload = function DateFunction() { today = new Date(); var dd = tod

DateFunction在id为datelate的文本输入中设置今天的日期。 然后,日期作为对象HTMLInputElement存储在addLate函数中的日期变量中。每次我试图提取存储在变量中的日期时,它都会显示:[object HTMLInputElement],而不是实际日期。如何仅从输入中获取实际日期

Javascript:

window.onload = function DateFunction() {
    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('datelate').value= today;
}

$(document).ready(function(){

    $("#addLate").click(function(){

          var fname=$("#firstname").val();
          var lname=$("#lastname").val();
          var date=$("#datelate").val();
          var time=$("#time").val();
          var detdate=$("#detentiondate").val();
          var reason=$("#reason").val();
        if (fname !== "" && lname !== "" && date !== "" && time !== "" && reason !== "") {
              $.ajax({
                  type:"post",
                  url:"late.php",
                  data:"firstname="+fname+"&lastname="+lname+"&date="+datelate+"&time="+time+"&detentiondate="+detdate+"&reason="+reason,
                  success:function(){
                     alert("Late note added");
                     window.location.href = "home.php";
                  }
              });
        } else {
                alert("You must fill out all the empty information!");
            }
    });

});
HTML:


您可以附加一个变量:

"&date="+datelate+ 
与元素id共享其名称,从而反映其toString的结果,而不是您在此处创建的正确变量:

var date=$("#datelate").val();

追加&date=+date+。

追加变量:

"&date="+datelate+ 
与元素id共享其名称,从而反映其toString的结果,而不是您在此处创建的正确变量:

var date=$("#datelate").val();

Append&date=+date+。

在我看来,您在数据集中没有正确命名变量

var date=$("#datelate").val();

data:"firstname="+fname+"&lastname="+lname+"&date="+datelate+"&time="+time+"&detentiondate="+detdate+"&reason="+reason
应该是

data:"firstname="+fname+"&lastname="+lname+"&date="+date+"&time="+time+"&detentiondate="+detdate+"&reason="+reason

请注意变量date和datelate之间的差异

在我看来,您在数据集中没有正确命名变量

var date=$("#datelate").val();

data:"firstname="+fname+"&lastname="+lname+"&date="+datelate+"&time="+time+"&detentiondate="+detdate+"&reason="+reason
应该是

data:"firstname="+fname+"&lastname="+lname+"&date="+date+"&time="+time+"&detentiondate="+detdate+"&reason="+reason

请注意,变量date和datelate之间的差异对我来说似乎很好。只需在日期中按日期更改datelate(&date)=+datelate@wrxsti我将它存储到mySQL数据库中。当我对数据库执行SELECT查询时,它返回的是objectHTMLInputElement,而不是日期。@SamG这是因为在数据库中存储它时没有存储正确的值。您最初发送的变量是错误的。检查我的答案,你会看到的。似乎对我来说很好。只需在日期中按日期更改datelate(&date)=+datelate@wrxsti我将它存储到mySQL数据库中。当我对数据库执行SELECT查询时,它返回的是objectHTMLInputElement,而不是日期。@SamG这是因为在数据库中存储它时没有存储正确的值。您最初发送的变量是错误的。检查我的答案,你会看到的。我明白!非常感谢。我不太清楚整个AJAX数据发送过程。我是否也错误地使用了数据行中的其他变量?@SamG如果我们解决了您的问题,请不要忘记标记正确的答案。谢谢为什么在数据集中,其他变量的id就在它们旁边,而日期变量却没有?这就是为什么我最初认为它应该是&date=+datelate@SamG它唯一的变量date=$datelate.val;这很重要。如果要将其更改为var datelate=$datelate.val;那么原始数据集字符串就可以工作了。我明白了!非常感谢。我不太清楚整个AJAX数据发送过程。我是否也错误地使用了数据行中的其他变量?@SamG如果我们解决了您的问题,请不要忘记标记正确的答案。谢谢为什么在数据集中,其他变量的id就在它们旁边,而日期变量却没有?这就是为什么我最初认为它应该是&date=+datelate@SamG它唯一的变量date=$datelate.val;这很重要。如果要将其更改为var datelate=$datelate.val;如果没有定义用于构建字符串的变量datelate,则声明了一个名为date的变量。由于datelate尚未由您定义,并且由于它也是元素的id,因此默认为该元素。您尚未定义用于生成字符串的变量datelate,而是声明了一个名为date的变量。由于datelate尚未由您定义,并且因为它也是元素的id,所以它默认为该元素。