1

jQueryが検索フィールドの値をフィールドの実際の値より1ステップ遅れて報告するのはなぜですか?ここではjsFiddleにあります。

<input type="search" class="search" name="test">

<p id="result"></p>

<script>

$('.search').each(function () {
    var search_type = $(this).attr('name');
    $(this).keydown(function (e) {
        var params = {
            'search_type': search_type,
                'q': $(this).val()
        };
        $('#result').text(params.q);
    });
});

</script>
4

2 に答える 2

1

キーアップを使用しているため、キーダウンを使用するとその動作が得られます。キーが押されるとすぐにキーダウンが発生しますが、値はまだ更新されていないためです。キーアップ時に値が更新されました。

デモ

 $(this).keyup(function (e) {
    var params = {
        'search_type': search_type,
        'q': $(this).val()
    };
    $('#result').text(params.q);
 });
于 2013-03-25T06:46:37.200 に答える
0

キーアップイベントを使用します。これにより、更新された値が取得されます。

イベントの説明は次のとおりです。主要なイベント

于 2013-03-25T06:46:21.527 に答える