jQuery 通过 JSON 自动完成来自 ASMX 的名称/值对

标签 jquery json autocomplete asmx

我有两个文本框,我试图将其用于自动完成。两者的源数据均来自 ASP.NET ASMX Web 服务,以 JSON 格式返回。我正在返回一个 List,其中 NameValue 定义为:

public struct NameValue { 公共(public)字符串名称;公共(public)字符串值; }

如何解析此数据,以便可以将所选下拉列表名称的值存储在隐藏字段中?

这是页面加载时到目前为止我的代码,msg.d 包含 JSON 数据(我看到 msg.d[0].Name >msg.d[0].Value)

$.ajax({
        type: "POST",
        url: '/Services/Team.asmx/GetClubTeams',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
          $('#<%= txtFromTeam2.ClientID %>, #<%= txtToTeam2.ClientID %>').autocomplete({
            source:msg.d
          });
        },
        error: function(xhr, msg) {
          alert(msg);
        }
      });

最佳答案

回答了我自己的问题。诀窍是要知道名称/值应采用以下形式:

public struct TeamData { 公共(public)字符串 key ;公共(public)字符串值; }

看来(小写)对 jQuery 很重要。

$.ajax() 调用如下...希望这对某人有帮助:

$.ajax({
       type: "POST",
       url: '/Services/Team.asmx/GetClubTeams',
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       data: "{}",
       success: function(data) {
         $('#txtFromTeam2').autocomplete({
           source: data.d,
           minLength: 3,
           focus: function(event, ui) {
             $('#txtFromTeam2').val(ui.item.value);
             return false;
           },
           select: function(event, ui) {
             $('#txtFromTeam2').val(ui.item.value);
             $('#<%= txtFromTeam2Id.ClientID %>').val(ui.item.key);
             populatePlayers(ui.item.key);
             return false;
           }
         });
         $('#txtToTeam2').autocomplete({
           source: data.d,
           minLength: 3,
           focus: function(event, ui) {
             $('#txtToTeam2').val(ui.item.value);
             return false;
           },
           select: function(event, ui) {
             $('#txtToTeam2').val(ui.item.value);
             $('#<%= txtToTeam2Id.ClientID %>').val(ui.item.key);
             return false;
           }
         });
       },
       error: function(xhr, msg) {
         alert(msg);
       }
     });

关于jQuery 通过 JSON 自动完成来自 ASMX 的名称/值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4126925/

相关文章:

javascript - 在html5 Canvas 内制作重力效果

jquery - 如何获取选项数组中的值的数量?

jquery - 如果兄弟元素之一为空,则隐藏元素

php - trim json 数据的最佳方法是什么?

asp.net-mvc - autocomplete=off 在 mvc 5 中不起作用

jquery - 当我选择javascript元素时页面跳转到顶部?

ios - 如何反序列化 json 对象并分配给 iOS 中的 NSDictionary

json - Kotlin - 如何防止在 jackson Json 反序列化期间 null 进入 Map 对象?

javascript - Google Place Autocomplete API 下拉列表未显示在模态中

html - 在 VS Code 中禁用 HTML 注释的自动关闭