1

为什么jQuery报告搜索字段的值比字段的实际值落后一步?这是在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

因为您正在使用 keyup,所以使用 keydown 会给您这种行为。因为 keydown 会在按下键后立即触发,但值尚未更新。在 keyup 上,该值已更新。

演示

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

使用 keyup 事件。这将为您提供更新的值。

以下是事件的解释:关键事件

于 2013-03-25T06:46:21.527 回答