【问题标题】:Show entered text in jquery autocomplete list在 jquery 自动完成列表中显示输入的文本
【发布时间】:2013-11-25 23:32:36
【问题描述】:

我有一个 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/

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

谢谢

【问题讨论】:

    标签: jquery jquery-mobile jquery-autocomplete


    【解决方案1】:

    要让 jQuery mobile 修复它的类(它会在它认为是第一个的 li 元素中添加一个 first-child 类),您需要手动调用 $('#contacts').listview('refresh'); 以使其刷新

    Demo


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

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

    【讨论】:

    • 当我将上面的代码移动到我的自定义 JS 文件中时,它是否可以正常工作?但是,如果我将函数重写为普通的 javascript 函数,函数 getInput(),并通过 onkeyup="getInput()" 调用它,它可以正常工作吗?
    • 如果不查看任何代码,很难准确判断问题出在哪里,我已经编辑了我的答案,试图帮助您朝着正确的方向前进
    猜你喜欢
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多