【问题标题】:JS: Insert a value into input type date [duplicate]JS:在输入类型日期中插入一个值[重复]
【发布时间】:2023-03-14 13:05:01
【问题描述】:

我想用 javascript 将当前日期插入到表单的输入中,但它不起作用,这是我的代码:

document.addEventListener("DOMContentLoaded", function() {
  document.getElementById("registrationday").value = getDay()

  function getDay() {
    var today = new Date();
    var dd = String(today.getDate()).padStart(2, '0');
    var mm = String(today.getMonth() + 1).padStart(2, '0');
    var yyyy = today.getFullYear();

    today =  "\"" + yyyy + '-' + mm + '-' + dd + "\"";
    return today
  }
})
<input type="date" id="registrationday" name="registrationday" disabled>

【问题讨论】:

  • 没有必要使用自定义函数来实现您想要实现的目标。就用这个document.getElementById('registrationday').valueAsDate = new Date();

标签: javascript


【解决方案1】:

去掉引号:

document.addEventListener("DOMContentLoaded", function() {
  document.getElementById("registrationday").value = getDay()

  function getDay() {
    var today = new Date();
    var dd = String(today.getDate()).padStart(2, '0');
    var mm = String(today.getMonth() + 1).padStart(2, '0');
    var yyyy = today.getFullYear();

    today =  yyyy + '-' + mm + '-' + dd;
    return today
  }
})
<input type="date" id="registrationday" name="registrationday" disabled>

但是,更好的解决方案是将当前日期分配给输入的valueAsDate 属性(由@Always Helping 建议):

document.addEventListener("DOMContentLoaded", function() {
  document.getElementById("registrationday").valueAsDate = getDay()

  function getDay() {
    return new Date()
  }
})
<input type="date" id="registrationday" name="registrationday" disabled>

【讨论】:

  • 为什么不 -> document.getElementById('registrationday').valueAsDate = new Date(); - 保持简单哦。
  • @AlwaysHelping 是的,这当然是一个更好的解决方案。我只是指出 OP 的解决方案出了什么问题。
【解决方案2】:

您的函数返回的"\"2021-10-17\"" 格式无效(不必要的斜线和双引号)

只需更改"\"" + yyyy + '-' + mm + '-' + dd + "\"";

收件人:today = yyyy + '-' + mm + '-' + dd; 将返回正确的输出2021-10-17

【讨论】:

    【解决方案3】:

    用这个 JS 解决了:

    document.addEventListener("DOMContentLoaded", function(){
    var date = new Date ();
    var day = datum.getDate(),
        month = datum.getMonth() + 1,
        year = datum.getFullYear();
    var today = day + "-" + month + "-" + day ;
    
    document.getElementById('registrationday').value = today;  
    });
    

    HTML:

    <input type="date" id="registrationday" name="registrationday" disabled>
    

    【讨论】:

      【解决方案4】:
      var currentDate= new Date();
      
      var day = ("0" + currentDate.getDate()).slice(-2);
      var month = ("0" + (currentDate.getMonth() + 1)).slice(-2);
      
      var today = currentDate.getFullYear()+"-"+(month)+"-"+(day) ;
      
      document.getElementById("datepicker").value = today;
      

      【讨论】:

        猜你喜欢
        • 2014-10-26
        • 2018-10-27
        • 2019-10-04
        • 2021-07-02
        • 2021-07-30
        • 1970-01-01
        • 2021-02-03
        • 2015-10-18
        • 2010-11-11
        相关资源
        最近更新 更多