日期输入永不为空

时间:2012-07-14 21:49:27

标签: jquery html date keyup

我有这段代码

$("#inputId").keyup(function(){
    alert($("#inputId").val());
});

我知道这是相当基本的(我不确定要google什么),但我想知道为什么警报总是一个空字符串。

编辑 -

出于某种原因,这不包括在内。

我的意思是当我输入字段时,警报从不显示任何内容 - 如果这是不精确的,道歉,我的意思是警报显示,但它总是显示一个空字符串(所以它应该显示日期中的内容)一个键已经解除后的字段,但没有)。这仍然发生在下面的固定html。

编辑(跟进问题) -

很酷,所以我接受了下面的答案之一。我想这样做,以便无论我输入什么,值都会出现在警报中(而不仅仅是当条目为日期格式时)。我该如何实现这一目标?

HTML代码 -

<div id = "container">
        <input type = "date" id = "inputId" class = "inputClass"><br /></input>
        <div id="deleteContainer"><span id="x">x</span></div>
</div>

4 个答案:

答案 0 :(得分:2)

input被打破了。变化

<input type = "date" id = "inputId" class = "inputClass"><br /></input>
                                                        ^^^^^^^^^^^^^^^

<input type = "date" id = "inputId" class = "inputClass">

答案 1 :(得分:2)

我创建了一个JSFiddle来测试它,如果您使用并输入类型日期,那么它应该可以工作。

还将$('#inputId')更改为$(this),这样可以节省额外的查询并且速度更快。

$("#inputId").keyup(function(){
    alert($(this).val());
});​

正如您在小提琴中看到的那样,使用带有日期字段的键盘(在Chrome中),在日期正确之前不会返回值。

您无法更改日期字段的行为,但您有两个选项。

  • 将其更改为输入类型文本字段并添加您自己的验证。
  • 在用户离开字段时获取值(这是HTML或中的'blur'事件) jQuery中的'change'事件)如果日期有效则获得值。

这是一个fiddle,用于演示更改事件而非keyup事件。

更新更改小提琴以使用输入日期

答案 2 :(得分:1)

你破坏了HTML:

<input type="date" id="inputId" class="inputClass"><br /></input>

应该是:

<input type="date" id="inputId" class="inputClass" /><br />

答案 3 :(得分:1)

这很好用:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Test</title>
    </head>
    <body>
        <input id="inputId" type="text"/>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
        <script type="text/javascript">
        $("#inputId").keyup(function() {
            console.log($("#inputId").val());
        })
        </script>
    </body>
</html>