输入时自动完成(但不在自动选择中)

时间:2011-04-07 15:24:21

标签: jquery html forms submit enter

我有一个简单的输入字段

并在输入时我想提交它(它所在的表格)。我使用的是jQuery但没有任何autoComplete扩展,所以它只是默认的浏览器:

$('#searchfield')
.keypress(function(event) {
        var keycode;
        if (window.event)
            keycode = window.event.keyCode;
        else if (event)
            keycode = event.which;
        else
            return true;

        if (keycode == 13)
            $('#searchForm').submit();
});

此解决方案存在问题: 当有人(在FF3中)开始输入(比如说“stackov”),然后向下箭头选择并点击输入,表格被发送,虽然搜索“stackov”,而不是选择“stackoverflow”。 / p>

或者我尝试了

$('#searchfield')
.change( function() {
   $('#singleSearch').trigger('click');
})

这让我正确选择了“stackoverflow”,但是现在任何离开该字段(例如在blur()中,例如在点击一些字母后)非自愿地将其发送出去。

对此有任何(理想的测试;)建议吗?

1 个答案:

答案 0 :(得分:1)

嗯,我只能说,在提交之前允许'摘要'自动完成的一小段延迟 解决了这个问题:

if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {
    setTimeout( function() {
        $('#searchForm').submit(); 
    } , 30 );
};