1

私はこのコードを持っています

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

私はこれがかなり基本的であることを知っています(私は何をグーグルするべきか正確にはわかりません)が、なぜそのアラートが常にヌル文字列であるのか知りたいです。

編集-

何らかの理由で、これは含まれていませんでした。

私が意味したのは、フィールドに入力すると、アラートには何も表示されないということでした。これが不正確だった場合は、申し訳ありませんが、アラートは表示されますが、常にnull文字列が表示されます(したがって、日付フィールドの内容が表示されます。キーは解除されましたが、解除されていません)。これは、以下の修正されたhtmlでも引き続き発生します。

編集(フォローアップ質問)-

かっこいいので、以下の答えの1つを受け入れました。入力内容に関係なく、(エントリが日付形式の場合だけでなく)アラートに値が表示されるようにしたいと思います。どうすればこれを達成できますか?

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());
});​

Fiddleでわかるように、日付フィールド(Chromeの場合)でキーアップを使用すると、日付が正しくなるまで値が返されません。

日付フィールドの動作を変更することはできませんが、2つのオプションがあります。

  • 入力タイプのテキストフィールドに変更し、独自の検証を追加します。
  • ユーザーがフィールドを離れたときに値を取得し(これはHTMLの「blur」イベントまたはjQueryの「change」イベントです)、日付が有効な場合は値を取得します。

これは、キーアップイベントの代わりに変更イベントを示すフィドルです。

更新入力日を使用するようにフィドルを変更しました

于 2012-07-14T21:56:40.140 に答える
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 に答える
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 に答える