Javascript 匹配用户';使用jquery自动完成的s类型输入

Javascript 匹配用户';使用jquery自动完成的s类型输入,javascript,jquery,jquery-ui-autocomplete,Javascript,Jquery,Jquery Ui Autocomplete,我使用jQueryUIAutoComplete来验证一些表单输入。 我有这个密码: function addAutoComplete(beacon, url) { $(document).ready(function(){ $('input' + beacon).autocomplete({ source: url, minLength:3, select: function(event, ui) {

我使用jQueryUIAutoComplete来验证一些表单输入。 我有这个密码:

function addAutoComplete(beacon, url) {
    $(document).ready(function(){
        $('input' + beacon).autocomplete({
            source: url,
            minLength:3,
            select: function(event, ui) {
                var selectedObj = ui.item;
                $(beacon+'_autocomplete_id').val(selectedObj.id);
                return false;
            },
            change: function(event, ui){
                if (ui.item == null){
                           $(beacon+'_autocomplete_id').val(0);
                } else {
                   $(beacon+'_autocomplete_id').val(ui.item.id);
                   }

            }
            });
        });
}       
目标很简单:将数据的“id”值与隐藏字段相关联。当用户的输入不在源代码中时,我们将输入一个“0”。我的问题是,当用户键入所有内容而不单击或使用自动完成时,他可以编写一个正确的值,但不会被确认为正确的值

例如,如果将源代码存储在本地数组中,我已经看到了如何避免这个问题,但是有没有一种方法可以对来自url的源代码执行此操作?换句话说,是否有一个属性允许我在不必为源代码编写回调函数的情况下操作从url转到的JSON


提前谢谢

找到了一个解决方案:使用斯科特·冈萨雷斯(Scott González)真是太棒了。非常完美,非常棒。

找到了一个解决方案:使用Scott González非常棒。非常好用。

你的“如果”和“其他”做了同样的事情。。。假设用户输入了一个有效的值,那么如何获得该值的“ui.item.id”的等价物呢?也许您可以使用另一个事件处理程序,如使用ajax检查该值是否有效的“onblur”,并填充“$(beacon+”\u autocomplete\u id')”?“ui.ite.id”到底是什么?是自动完成的li元素的id,还是从服务器上得到的东西?我纠正了if/else(复制/粘贴代码太快)。我知道我可以按照你的建议去做,但是因为已经有人请求获取自动完成的来源,我想使用这些数据。Ui.item.id是自动完成建议的项目中所选项目的“id”值。如果没有“ui.item”,我需要获取输入中的值,并将其与自动完成请求读取的每个数据进行比较,而不是将该值设置为0。您的“if”和“else”也会执行相同的操作。。。假设用户输入了一个有效的值,那么如何获得该值的“ui.item.id”的等价物呢?也许您可以使用另一个事件处理程序,如使用ajax检查该值是否有效的“onblur”,并填充“$(beacon+”\u autocomplete\u id')”?“ui.ite.id”到底是什么?是自动完成的li元素的id,还是从服务器上得到的东西?我纠正了if/else(复制/粘贴代码太快)。我知道我可以按照你的建议去做,但是因为已经有人请求获取自动完成的来源,我想使用这些数据。Ui.item.id是自动完成建议的项目中所选项目的“id”值。如果没有“ui.item”,我需要获取输入中的值,并将其与自动完成请求读取的每个数据进行比较,而不是将值设置为0。