设置初始JQuery建议值

时间:2011-11-11 12:08:05

标签: javascript jquery

我有一个使用键和值的JQuery建议框。键是保存的值,例如userId,值是显示的值,例如用户名。

当有空白字段时,效果很好。我键入几个字符,选择一个名称,并将该值添加为随HTTP请求发布的值。现在,我应该如何预先填写表单的建议,以及它何时具有值。将保存的userId作为值放置时,suggest会显示userId,但显然我想显示用户名。我还尝试回显选择的用户名,但如果用户名未更改,则发布的值将是用户名。

                <script>
                <!--
                $(document).ready(function() {
                    $("#creatorUserId").autocomplete("Gateway.php?action=UserAction&subAction=suggest",{
                        parse: function(data) {
                            var parsed = [];
                            data = data.data;

                            for (var i = 0; i < data.length; i++) {
                                parsed[parsed.length] = {
                                    data: data[i],
                                    value: data[i].key,
                                    result: data[i].value
                                };
                            }

                            return parsed;
                        },
                        formatItem:function(item, index, total, query){
                            return item.value;
                        },
                        formatResult:function(item){
                            return item.id;
                        },
                        dataType: 'json'
                    });
                });
                -->
                </script>   

<input type="text" name="creatorUserId" id="creatorUserId" value="3" size="40" />

我怎么解决这个问题?

2 个答案:

答案 0 :(得分:0)

单击时删除文本框的当前值(当且仅当文本框尚未编辑时)。

当输入失去焦点时,如果输入未被编辑,则返回初始值。

答案 1 :(得分:0)

试试这个

<script>
            <!--
            $(document).ready(function() {
                $("#creatorUserId").autocomplete("Gateway.php?action=UserAction&subAction=suggest",{
                    parse: function(data) {
                        var parsed = [];
                        data = data.data;

                        for (var i = 0; i < data.length; i++) {
                            parsed[parsed.length] = {
                                data: data[i],
                                key: data[i].key,
                                value: data[i].value
                            };
                        }

                        return parsed;
                    },
                    formatItem:function(item, index, total, query){
                        return item.value;
                    },
                    formatResult:function(item){
                        return item.id;
                    },
                    dataType: 'json'
                });
            });
            -->
            </script>