【问题标题】:How do I override the default behavior of select: within jQuery UI Autocomplete?如何覆盖选择的默认行为:在 jQuery UI 自动完成中?
【发布时间】:2011-08-06 23:29:51
【问题描述】:

我有以下:

$('#<%=txtCity.ClientID%>').autocomplete({
  source: function (request, response) {
    var parameters = {
      isoalpha2: '<%=Session["BusinessCountry"].ToString()%>',
      prefixText: request.term
    };
    $.ajax({
      url: '<%=ResolveUrl("~/AtomicService/Assets.asmx/GetCitiesWithState")%>',
      type: 'POST',
      dataType: 'json',
      contentType: 'application/json; charset=utf-8',
      data: JSON.stringify(parameters),
      success: function (data) {
        response($.each(data.d, function (index, value) {
          return {
            label: value.slice(value.indexOf(',')),
            value: parseInt(value.split(',')[0])
          }
        }));
      }

    });
  },
  minLength: 2,
  delay: 50,
  select: function (event, ui) {
    var city = ui.item.label.split(',')[0];
    var state = ui.item.label.split(',')[1];
    alert(city);
    alert(state);
    $('#<%=txtCity.ClientID%>').val(city);
    $('#<%=txtState.ClientID%>').val(state);
  },
});

这都是快乐的日子,除了当我从自动完成列表中选择一个项目时,我不想让自动完成填充 $('#&lt;%=txtCity.ClientID%&gt;') 元素。我该怎么做?我看到.insertAfter,这是我应该看的吗?

帮助表示赞赏。

【问题讨论】:

  • 我假设这包括 ASP.NET 代码?

标签: jquery jquery-ui autocomplete jquery-ui-autocomplete


【解决方案1】:

尝试从select event返回false

...
select: function(event, ui) {
    var city = ui.item.label.split(',')[0];
    var state = ui.item.label.split(',')[1];
    alert(city);
    alert(state);
    $('#<%=txtCity.ClientID%>').val(city);
    $('#<%=txtState.ClientID%>').val(state);
    return false;
},

来自文档(选择事件):

选择项目时触发 从菜单中; ui.item 指的是 选定的项目。的默认动作 选择是替换文本字段的 与所选值的值 物品。 取消此事件可防止 值被更新,但确实 不阻止菜单关闭。

You can try it here.

【讨论】:

  • 谢谢我在找这个。
【解决方案2】:

虽然在这里它可能不会有什么不同,但你应该说 event.preventDefault 而不是返回 false

event.preventDefault() vs. return false

在不需要时总是停止传播事件是不好的做法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-01
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    相关资源
    最近更新 更多