【问题标题】:How to tell apart partially filled or invalid input of type datetime-local from the empty one?如何区分 datetime-local 类型的部分填充或无效输入与空输入?
【发布时间】:2018-08-28 09:48:04
【问题描述】:

有没有办法知道用户在datetime-local 类型的<input> 中输入了无效的日期和/或时间,而不是他没有输入任何内容?

我想将无输入视为用户想要重置/删除正在编辑的日期时间。

我正在使用来自 AngularJS 的 input['datetime-local']https://docs.angularjs.org/api/ng/input/input%5Bdatetime-local%5D

【问题讨论】:

标签: angularjs html input datetimepicker html-input


【解决方案1】:

您可以像这样检查本地日期时间的状态:

<input id="dte" type="datetime-local">

<script>
    var myDate = document.getElementById("dte");
    myDate.addEventListener("blur", function() {
        console.log("valueMissing : " + myDate.validity.valueMissing);
        console.log("badInput : " + myDate.validity.badInput);
        console.log("valid : " + myDate.validity.valid);
        console.log("value : " + myDate.value);
    });
</script>

您可以检查其他值,但这些值应该符合您提到的要求:

未输入值:

valid == false &amp;&amp; badInput == false &amp;&amp; valueMissing == false &amp;&amp; value == ''

输入的值(但无效):

valid == false &amp;&amp; badInput == true &amp;&amp; valueMissing == false &amp;&amp; value == ''

输入的值(且有效):

valid = true &amp;&amp; badInput == false &amp;&amp; valueMissing = false &amp;&amp; value == 'whatever date you entered'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 2017-04-12
    • 2014-09-02
    • 2018-01-14
    • 2020-02-08
    • 2016-11-28
    • 1970-01-01
    相关资源
    最近更新 更多