自动填充:显示与填充内容不同的数据,并填写多个字段?

时间:2010-01-05 17:27:41

标签: jquery asp.net ajax asp.net-mvc autocomplete

我正在使用asp.NET MVC,我正在查看我想要做的JQuery自动完成插件。我需要一些我认为不会提供的额外功能。

我有一个包含两个文本字段的页面,名字和姓氏。理想情况下,当有人开始输入时,我希望自动完成显示所有匹配的名字和姓氏。如果选择了其中一个匹配项,我希望只有相应的(第一个/最后一个)名称进入当前字段,而另一个字段也填入相应的名称。

所以这里的问题是A)我希望建议文本与将填充到当前字段的值不同,并且B)我想从单个自动完成更新多个字段。这有意义吗?似乎很难在网上找到有关这种情况的信息。提前感谢您的时间。

2 个答案:

答案 0 :(得分:1)

如果您确定要这样做,此示例将执行您想要的操作。您可以使用result()方法添加所需的功能。

$(document).ready(function(){

    var data = [ "John Doe","Jane Doe","Mike Smith" ];


    $("#firstname").autocomplete(data).result(function(event, item) {
            var rdata = item[0].split(" ");
            $("#firstname").val(rdata[0]);
            $("#lastname").val(rdata[1]);
    });

    $("#lastname").autocomplete(data).result(function(event, item) {
            var rdata = item[0].split(" ");
            $("#firstname").val(rdata[0]);
            $("#lastname").val(rdata[1]);
    });

});

答案 1 :(得分:0)

对于传统的自动完成插件而言,您所寻找的内容有点不寻常,从可用性的角度来看,这种行为会有些出乎意料......这可能让某些用户感到困惑,因为它违背了规范已经熟悉了。

此外,在一个字段中更改用户导致自动更改其他字段几乎总是一个非常糟糕的主意。用户并不总是注意到其他字段已更改,并且他们并不总是仔细检查预填充字段的值,因此这通常会导致数据输入错误率增加。

您是否考虑过在UI上只有一个字段用于名称而只使用一个自动完成?在服务器端,您可以将内容拆分为单独的字段。

您可能考虑的另一种技术是选择“查找我”功能。在这里你有一个如上所述的字段。用户搜索,如果他们选择了某些内容,则会填充表单的其余部分。通常,您可以隐藏或禁用表单的其余部分,直到用户从查找中选择,或明确按下某种“跳过”按钮。

我发现这很有用,特别是如果您在查找时可以为用户预先填充多个字段。它还具有比您在问题中描述的场景更直观的用户界面的优势。