jQuery 自动完成问题 - 如果用户没有特别选择则不匹配

标签 jquery html jquery-autocomplete

继我之前的两个问题之后:

How to make jQuery autocomplete execute a search() when user hits submit

How would I trim the input to a JQuery auto-complete box?

我的表单中有一个 jQuery UI 1.8 自动完成框,在大多数情况下,它的工作原理非常棒。我遇到的一个问题是,如果我输入一个有效名称,但不选择出现的选项,那么该名称永远不会与我的{name,value} 匹配列表,因此未设置包含“值”部分的隐藏输入的正确值。这当然会导致令人困惑的情况,即可以输入一个您知道正确的名称,点击提交并被告知您没有输入正确的名称(因为值为 null)。

即使用户没有从自动完成框中做出选择,我如何确保设置了隐藏的输入值?是否有一些功能可以绑定(bind)到提交按钮的 onclick 事件,这将使 jQuery 搜索框中的内容并自动选择第一个选项?或者,当用户以任何方式(返回/tab/单击关闭/等)取消选择输入框时,我是否可以让自动完成选择第一个选项?

谢谢。

最佳答案

这是我对您的问题的解决方案。我刚刚添加了关于 change 事件的部分。 希望对您有所帮助。

jQuery(function(){
    jQuery('#Resource').autocomplete({
        source: data,
        focus: function(event, ui) {
            jQuery('#Resource').val(ui.item.label);
            return false;
        },          
        select: function(event, ui) {
            jQuery('#Resource').val(ui.item.label);
            jQuery('#EmployeeNumber').val(ui.item.value);
            return false;
        },
        change: function(event,ui){
                for (var i in data){
                    if (data[i].label==jQuery('#Resource').val()){
                        jQuery('#EmployeeNumber').val(data[i].value);
                    }
                }
        }
    });
}); 

关于jQuery 自动完成问题 - 如果用户没有特别选择则不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3317685/

相关文章:

javascript - 滑动包装器可阻止页面上的所有点击事件

javascript - 动态激活自定义类按钮

javascript - 选中复选框时动态更改选择选项

jquery - 如何使 jQuery 自动完成仅替换某些单词 - 而不是完整字符串?

Javascript for ... in循环对象不在最后一个属性上运行

javascript - ui-grid 突出显示某些特定行

jquery select size属性改变

javascript - 如何使用 for 循环动态设置 'div' 元素的颜色以匹配在颜色小部件上选取的颜色?

javascript - 如何判断 DOM 元素在当前视口(viewport)中是否可见?

php - jquery-ui-1.8.14 使用 php 和 mysql 自动完成