【问题标题】:Jquery ui autocomplete driving me crazyJquery ui自动完成让我发疯
【发布时间】:2011-06-22 04:06:38
【问题描述】:

我有一个<input id="txtCustome2r" />

我的.ready 函数中有

$("#txtCustome2r").autocomplete({
    source:  "itemcomplete.asp", 
    minLength: 2,
    select: function( event, ui ) {
        log( ui.item ?
                     "Selected: " + ui.item.value + " aka " + ui.item.id :
                     "Nothing selected, input was " + this.value );
    }
}); 

自动完成返回有效的json

[ { "id': "4",  "label": "Kathi  ",   "value": "Kathi  "}, { "id': "6",  "label": "Kathleen  ",   "value": "Kathleen  "}]

并且下拉菜单中没有显示任何内容。非常感谢任何帮助!

谢谢!

【问题讨论】:

    标签: jquery json jquery-ui autocomplete


    【解决方案1】:

    单引号不是有效的 JSON。您需要用双引号将您的键名和字符串值括起来:

    [ { "id": 4,  "label": "Kathi", "value": "Kathi 3" }, ... ]
    

    如果要检查 JSON 响应的有效性,可以使用 JSONLint

    【讨论】:

    • 不,很遗憾没有。我将其更新为双引号。还是没有骰子。
    • 好吧,不成功!你能从你的答案中删除姓氏吗?
    【解决方案2】:

    如果您在验证@Mark Bell 解决方案中提到的格式后仍然遇到问题,请尝试将dataType: 'json' 传递给自动完成函数调用。

    【讨论】:

      【解决方案3】:

      这可能有点棘手。我喜欢让源成为一个函数,这样我就可以有更多的控制权。注意 toString 上的覆盖:

      var search = function (request, response) {
          jQuery.get(
              jQuery('#SearchUrl').val(),
              { searchString: request.term },
              function (data) {
                  response(jQuery.map(data.searchResults, function (item) {
                      return {
                          label: item.Id,
                          value: {
                              toString: function () { return item.Id + ' - ' + item.Name; },
                              Name: item.Name
                          }
                      }
                  }));
              }
          );
      };
      // set up the autocomplete
      jQuery('#MyTextBox').autocomplete({
          source: search,
          minLength: 3,
          focus: function (event, ui) {
              jQuery('#name').text(ui.item.value.Name);
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        • 2018-01-16
        相关资源
        最近更新 更多