为什么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>
答案 0 :(得分:1)
因为您正在使用keyup,所以使用keydown将为您提供该行为。因为按下键后keydown会立即触发,但值尚未更新。在keyup上,值已更新。
$(this).keyup(function (e) {
var params = {
'search_type': search_type,
'q': $(this).val()
};
$('#result').text(params.q);
});
答案 1 :(得分:0)
使用keyup事件。这将为您提供更新的值。
以下是对事件的解释:Key Events