【问题标题】:WebForm Date FieldWebForm 日期字段
【发布时间】:2018-12-05 09:11:03
【问题描述】:

我正在创建一个表单,但没有找到如何使用日历日期填充日期字段。表单应填充创建新表单的日期。我有以下代码:

<div>
  <label><b>Request Initiation Date</b></label><br />
  <input type="date" id="RequestDate">
  <script>
    (function() {
      var date = new Date().toISOString().substring(0, 10);
      var field = document.querySelector('#Requestate');
      field.value = date;
      console.log(field.value);
    });
  </script>
</div>

【问题讨论】:

    标签: javascript c# html date webforms


    【解决方案1】:

    你可以使用下面给出的js -

    document.getElementById("RequestDate").valueAsDate = new Date()
    

    new Date() fn 将获取当前日期并将其分配给目标 input[type=date] 控件。

    【讨论】:

    • 谢谢!这很有效,而且比我今天尝试过的任何其他方法都更简单。
    • 一个好的答案应该解释为什么 OP 有问题以及如何解决它。这两者都没有。
    【解决方案2】:

    你有两个问题。首先,在

    document.querySelector('#Requestate')
    

    你打错了元素ID,应该是

    document.querySelector('#RequestDate')
    --------------------------------^
    

    其次,你没有调用函数,所以最后一行应该是:

        }());
    -----^^
    

    完整代码:

    <div>
      <label><b>Request Initiation Date</b></label><br />
      <input type="date" id="RequestDate">
      <script>
        (function() {
          var date = new Date().toISOString().substring(0, 10);
          var field = document.querySelector('#RequestDate');
          field.value = date;
          console.log(field.value);
        }());
      </script>
    </div>

    当然你可以用更少的代码来编写它,但在这样做之前你应该考虑可读性和可维护性。

    【讨论】:

    • 我使用以下代码填充日期字段:
    • @Pens_Cup87——这在不支持输入类型日期或 valueAsDate 的浏览器中不起作用。您的原始代码(建议进行了细微更改)确实如此。但是,您的原始代码使用 toISOString,这可能会根据时间和主机时区偏移量返回错误的日期,因此您应该使用不同的方法来格式化日期字符串。
    猜你喜欢
    • 1970-01-01
    • 2012-08-04
    • 2011-06-05
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    相关资源
    最近更新 更多