自动完成后填充隐藏字段

时间:2014-01-13 12:52:06

标签: javascript jquery autocomplete

我正在尝试在用户点击自动填充条目后填充隐藏字段的值。
我试过的代码看起来像这样:

<input type=hidden id="myHiddenField" value="">

<script type="text/javascript">
    function selectItem(li) {
        return false;
    }
    function formatItem(row) {
        return row[0] + "<br><i>" + row[1] + "</i>";
    }
    $(document).ready(function () {
        $("#myInputField").autocomplete("../test.asp", {
            minChars: 3,
            matchSubset: 10,
            matchContains: 1,
            cacheLength: 10,
            onItemSelect: selectItem,
            formatItem: formatItem,
            selectOnly: 1,

            select: function (event, ui) {
                $("#myHiddenField").val(ui.item.value)
            }


        });
    });
</script>

自动完成工作正常,但我无法设置隐藏字段的值。我也尝试将它设置为普通字符串,如$("#myHiddenField").val("test"),但这也不起作用。

任何想法如何填充它?

这是我正在使用的自动填充功能:pastebin-link
这里有一个JSFiddle,虽然效果不正常。
自动完成源:Github-link。 (注意:在这种情况下,我必须使用此自动完成脚本,我无法使用较新的脚本。)

1 个答案:

答案 0 :(得分:1)

我有这样的解决方案;

function selectItem(li) {
    return false;
}

function formatItem(row) {
    return row[0] + "<br><i>" + row[1] + "</i>";
}
$(document).ready(function () {
    var programmingLanguages = [
        "Erlang",
        "Fortran",
        "Groovy",
        "Haskell",
        "Java",
        "JavaScript",
        "Lisp",
        "Perl",
        "PHP",
        "Python",
        "Ruby",
        "Scala",
        "Scheme"

    ];
    $(".autocomplete").autocomplete({
        source: programmingLanguages ,
        minChars: 3,
        matchSubset: 10,
        matchContains: 1,
        cacheLength: 10,
        onItemSelect: selectItem,
        formatItem: formatItem,
        selectOnly: 1,

        select: function (event, ui) {
            $("#hfieldvisible").val(ui.item.value)
        }


    });
});

我已将source param添加到自动填充功能中。我还在HTML中添加了一个项目

<input type="text" id="hfieldvisible" value="">

为了向您显示它正在将所选项目添加到该输入中。

以下是工作示例:http://jsfiddle.net/6S46E/

已更新(JSON远程):您可以在此处使用json远程版http://jsfiddle.net/u5beu/1/

相关问题