在jquery自动完成列表中显示输入的文本

时间:2013-11-25 23:32:37

标签: jquery jquery-mobile jquery-autocomplete

我有一个jquery移动自动填充表单/列表。我想从输入字段中显示输入的文本作为列表中的第一个选项。这工作正常,但是,此自定义列表项不会被设置为列表项的其余部分。这仅在按下单个字符时才会显现。输入第二个字符时,样式的格式应该是原样。

我正在使用以下代码注册被按下的键:

    $('#searchdiv').keyup(function() {
        $('#searchInput a').html($('#searchdiv input').val());

        if($('#searchdiv input').val().length == 0) {
            $('#searchInput').hide();
        }
        else {
            $('#searchInput').show();
        }
    });

请参阅此处的完整示例:http://jsfiddle.net/TAU82/

按下第一个字符时是否可以更新样式?

谢谢

1 个答案:

答案 0 :(得分:2)

要让jQuery mobile修复它的类(它将first-child类添加到它认为是第一个的li元素中)你需要手动调用$('#contacts').listview('refresh');来刷新它

Demo


如果它不能处理您的自定义JS,我会确保在将新节点(<li>)添加到列表后调用刷新。它位于页面底部的jQuery Mobile Docs,它讨论了由于效率原因刷新如何仅影响新添加的节点。 他们还建议使用hide()函数来代替:

  

如果您最初想要隐藏列表项,可以通过向li元素添加ui-screen-hidden类来完成此操作。使用此类可确保正确应用角样式以及最后一个可见项的边框底部。