3

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

当用户点击提交时如何让jQuery自动完成执行搜索()

我将如何修剪 JQuery 自动完成框的输入?

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

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

谢谢。

4

1 回答 1

3

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

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);
                    }
                }
        }
    });
}); 
于 2010-07-23T13:21:59.687 回答