1

我有这个代码

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

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

编辑-

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

我的意思是当我在字段中输入时,警报从不显示任何内容 - 如果这不准确,抱歉,我的意思是警报显示,但它总是显示一个空字符串(所以它应该显示日期字段中的内容键已解除,但没有)。下面的固定 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

4 回答 4

2

input坏了。改变

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

<input type = "date" id = "inputId" class = "inputClass">
于 2012-07-14T21:55:57.577 回答
2

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

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

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

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

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

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

这是一个演示更改事件而不是 keyup 事件的小提琴。

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

于 2012-07-14T21:56:40.140 回答
1

您破坏了 HTML:

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

应该:

<input type="date" id="inputId" class="inputClass" /><br />
于 2012-07-14T21:56:01.183 回答
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>
于 2012-07-14T22:04:52.973 回答