jQuery自动填充:事件选择

前端之家收集整理的这篇文章主要介绍了jQuery自动填充:事件选择前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当从菜单中选择项目时,我正在尝试提交表单。我在搜索表单上设置类,我正在使用在这里找到的事件选择: http://docs.jquery.com/UI/Autocomplete#event-select

现在,当您使用键盘(UP和DOWN)选择项目时,它可以正常工作。但是,如果您使用鼠标选择项目,它将为您提供先前键入的值。

检查此屏幕:http://www.screenr.com/7T0s

这是我用来提交的:

$("#searchform-input").autocomplete({
    select: function (a,b) {
        $(".searchform1").submit()
    }
});

解决方法

这是因为select事件的默认行为是执行 after your event handler is finished running(这样你可以取消它,如果你这样选择)。

这意味着当您单击某些内容时,您的表单将在窗口小部件有机会正确填充输入之前提交。

您应该能够通过做一些小部件通常为您做的工作来解决这个问题:

$("#searchform-input").autocomplete({
    select: function (a,b) {
        $(this).val(b.item.value);
        $(".searchform1").submit()
    }
});

现在,您可能会想知道是的,但是为什么在使用键盘时它会起作用?

这是因为焦点事件实际上填充了输入中的重点项目(仔细查看;当您在列表中上下移动时,您会看到填充的输入)。当鼠标悬停在项目上时,将调用焦点事件,填充输入。当您使用回车键选择某项时,由于焦点事​​件,正确的值恰好在输入中。

猜你在找的jQuery相关文章