[asp.net-mvc]JQuery UI 自动完成多 Textbox 的 ASP MVC Razor

发布时间: 2016/10/8 1:32:54
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我返回一个类对象,但只有 XRCFOR 文本框是正确填充。选择事件似乎没有工作。 通过 WebServe 我返回对象的项目。在行上的选择事件不过是只填充 XRCFOR 文本框。下面是 Html/剃须刀/Jquery 代码。谢谢你。

<td>
  @Html.EditorFor(model => model.XRUDBF, Functions.GetAdditionalViewData(ViewData["PageStatus"].ToString(), ViewData["PageReadonly"].ToString(), "form-control"))
   @Html.EditorFor(model => model.XRCFOR, Functions.GetAdditionalViewData(ViewData["PageStatus"].ToString(), ViewData["PageReadonly"].ToString(), "form-control"))
   @Html.EditorFor(model => model.XRCFORDescription, new {htmlAttributes= new { @class = "form-control", @readonly = "readonly" }})
    <script type="text/javascript">                        
                $("#XRCFOR").autocomplete({
                    source: function (request, response) {
                        $.ajax({
                            url: "/Zoom/GetFOR/",
                            type: "POST",
                            dataType: "json",
                            data: { term: request.term },
                            success: function (data) {
                                response($.map(data, function (item) {
                                    return {
                                        label: item.B5CFOR + " - " + item.B5RGS1, value: item.B5CFOR
                                    };
                                }))
                            }
                        })
                    },
                    select: function (event, ui) {
                        $("#XRUDBF").val(ui.item.B5CUDB);
                        $("#XRCFOR").val(ui.item.B5CFOR);
                        $("#XRCFORDescription").val(ui.item.B5RGS1);
                    },
                    //messages: {
                    //    noResults: '',
                    //    results: function () { }
                    //},
                    minLength: 1
                });
    </script>
</td>

解决方法 1:

我发现这种解决方案

success: function (data) {
                        response($.map(data, function (item) {
                            return {
                                label: item.B5CFOR + " - " + item.B5RGS1, value: item.B5CFOR, extravalue: item
                            };
                        }))
                    }

然后

        select: function (event, ui) {
            $("#XRUDBF").val(ui.item.extravalue.B5CUDB);
            $("#XRCFORDescription").val(ui.item.extravalue.B5RGS1);
        },

好的作品 !

赞助商