我如何设置ID到文本框,它将返回我的文本值

本文关键字:文本 返回 我的 何设置 设置 ID | 更新日期: 2023-09-27 18:09:44

我在使用jQuery的自动完成小部件时遇到了很多麻烦。我正在使用来自服务器的键/值对列表。

我有以下要求:

  1. 如果用户设置了该值的id,表示他知道该城市的代码他没有输入城市的名字,而是输入了城市的代码——我希望自动补全会输入城市的名字,但它没有!!
    我编辑我的代码,现在它工作了!
    我添加了这些行
    if (data.d.length == 1 && request.term.match(/'d+/g)) SetValue(textbox, hidden, data.d[0]); else

和函数
function SetValue(textbox, hidden, value){ textbox.focus().val(value.Text); hidden.val(value.Semel);}

  1. 另一件事是,如果一个是使用相同的页面进行创建和编辑-在编辑时重新加载页面,你必须重新创建所有的跨等值,我想从服务器发送只是自动完成的代码,而不是文本值,我想当我将值设置到文本框,自动完成将开始工作,并将从服务器带来的值
    但是我还是卡住了:
    我不知道如何触发"自动完成"事件发送值(请求值)
    我的c#代码:

    [WebMethod(EnableSession = true)]
    [ScriptMethod]
    public List<IEntityBase> FetchList(string Text, string Code, string Dspl, int NumRecordes, string TableName)
    {
        Text = Server.UrlDecode(Text);
        List<Tavla> tvListById = null;
        int ignored = 0;
    if (int.TryParse(Text, out ignored))
        tvListById = TvList.GetTvListById(TableName, ignored, Code, Dspl);if (tvListById != null && tvListById.Count != 0)
        return tvListById.Cast<IEntityBase>().ToList();
    var fetchShem = TvList.GetData(TableName, Code, Dspl)
    .Where(m => m.Shem.ToLower().Contains(Text.ToLower()))
    .Take(NumRecordes);
    return fetchShem.Cast<IEntityBase>().ToList();
    

    }

这里是我的Jquery代码:
enter code here
 textbox.autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "AutoComplete.asmx/" + funcName,
                data: "{ 'Text': '" + escape(request.term) + "','Code':'" + code + "','Dspl':'" + dspl + "','NumRecordes':'" + numrecordes + "','TableName':'" + tablename + "'}",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataFilter: function (data) { return data; },
                success: function (data) {                      
                    if (data.d.length == 1 && request.term.match(/'d+/g))
                            SetValue(textbox, hidden, data.d[0]);
                        else
                        response($.map(data.d, function (item) {
                            return {
                                label: item.Text,
                                value: item.Semel
                            }
                        }));
                    }
                },
                error: function (msg) { alert(msg); }
            });
        },
        minLength: minLength,
        select: function (event, ui) {
            var selectedObj = ui.item;
            if (selectedObj) {
                textbox.val(selectedObj.label);
                hidden.val(selectedObj.value);
            }       return false;   },
    });function SetValue(textbox, hidden, value) {
textbox.focus().val(value.Text);
hidden.val(value.Semel);

}

我如何设置ID到文本框,它将返回我的文本值

关于你的第一个问题,这完全取决于你所尝试的逻辑,以防万一,如果你有任何国家的id,那么这应该不会有任何困难。

第二个查询是关于页面的性能,如果您尝试使用ajax基于搜索模式更新元素,这也不应该有任何困难,其中您只需要更新相关元素,同时保持页面的其余部分完整。

参考http://jquery.com/以更好地理解相同的