以编程方式jquery自动完成文本框设置值

Del*_*vis 8 jquery jquery-autocomplete jquery-ui-autocomplete

我正在使用jquery 1.8.2和jqueryui 1.9.0库.

我试图在我的表中添加一个"编辑记录"对话框,其中包含一个jquery-ui的自动完成文本框.

我还使用自动完成的更改事件来限制用户从给定列表中选择项目.

我的问题是:当我告诉我的编辑形式,我现有的数据设置为文本框,但是当用户点击编辑表格另一个领域,改变控制器大跌眼镜没有错误发生变化.我发现有很多的样本,显示了如何设置组合框自动完成型的价值,但我无法找到一个文本框类型.请帮我解决这个问题,我相信你的答案也会对其他用户有用.

这是我的自动填充文本框的代码:

    $("#EditMaterialName").autocomplete({
        source: function (request, response) {
            $.ajax({
                type: "POST",
                url: "someurl",
                dataType: "json",
                data: {
                    search_string: request.term
                },
                success: function (data) {
                    response($.map(data, function (item) {
                        return {
                            label: item.description,
                            value: item.description
                        }
                    }));
                }
            });
        },
        minLength: 2,
        select: function (event, ui) {

        },
        change: function (event, ui) {
            if (!ui.item) {
                $('<div class="error"><b> please select a listed value.</b><div>').insertAfter('#EditMatName');
                $('#EditMaterialName').val('');
            }
        },
        open: function () {
            $(this).removeClass('ui-corner-all').addClass('ui-corner-top');

        },
        close: function () {
            $(this).removeClass('ui-corner-top').addClass('ui-corner-all');

        }
    });
Run Code Online (Sandbox Code Playgroud)

这是显示"编辑记录"对话框的代码:

$('a.edit_link').live("click", function () {

        clearEditMaterialForm();

        //loading selected value
        var valMaterialName = $(this).closest('tr').children('td.cl_material_name').text();

        $('#EditMaterialName').val(valMaterialName);

    });
Run Code Online (Sandbox Code Playgroud)

非常感谢你的回答.

GRG*_*doi 11

它不漂亮,也许它不正确,但它的工作原理:

function setAutocompletCurrentValue(id, value) {
   $(id).val(value);
   var textToShow = $(id).find(":selected").text();
   $(id).parent().find("span").find("input").val(textToShow);
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.