首页 > 解决方案 > 如何检测未选择 jquery 自动完成?

问题描述

我想知道是否有人可以帮助我解决我在 jQuery 中验证自动完成字段的问题。

场景如下,我单击一个框并开始输入,然后在值下拉列表之外输入(因此只有我输入的字母被选中)。然后我单击下一步,该字段验证正常(它检查计数是否超过 0(即至少添加了一个备件)并检查该字段是否不为空)。

尽管在我的示例中,我正在处理多个输入字段,但相同的原则也适用于选择单个框时。我正在使用 jQuery 1.11.2.min.js jquery.validate.js 和 jquery.autocomplete.js,在回答问题时可能没有用,但我也在使用引导程序:

$( 'body' ).on( 'click', '.sparedesc', function() {
    $(this).autocomplete({
        serviceUrl: 'func_action/autocomplete_spares_search.php',
        selectFirst: true,
        onSelect: function (suggestion) {
            console.log(suggestion);
            showSparesWarning(suggestion.value.length);
        }
    });
});

我在 autocomplete_spares_search.php 中的函数根据需要返回数据,并显示一个包含可能选择的下拉列表。但是,如果我在框外单击(即关闭它而不使用任何提供的选项),那么只有我输入的字母在输入框中(单击下拉列表中的选项会将输入的文本替换为所选选项。所以我我无法验证自动完成字段是否正确。有什么想法吗?

此外,我对如何验证多个输入有点困惑,因此任何指向最近良好的 tuts 的指针也将不胜感激。

谢谢

标签: jqueryjquery-ui-autocomplete

解决方案


我进一步研究了我的问题,并认为我有 2 种可能的方法,首先(由于另一个 ajax 调用,可能是最不希望的)是通过新函数检查所选字段是否存在于数据库中,或者我添加一个 data-selected ="1" 属性在成功更改时添加到输入并检查此计数是否与类元素计数匹配。


推荐阅读