You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SweetAlert2弹窗中实现jQuery UI Autocomplete功能?

解决SweetAlert2弹窗内jQuery UI Autocomplete失效问题

问题根源在于:Autocomplete初始化代码执行时,SweetAlert2的弹窗还未完成渲染,#name输入框尚未加入DOM,导致无法绑定自动完成功能。

正确的做法是借助SweetAlert2的didOpen回调——该回调会在弹窗完全打开并渲染完成后触发,此时再初始化Autocomplete:

Swal.fire({
  title: 'Get Users',
  // 替换转义字符,让HTML结构更清晰
  html: '<input type="text" id="name" class="swal2-input" placeholder="Search name...">',
  showCancelButton: false,
  confirmButtonText: 'Next',
  showLoaderOnConfirm: true,
  // 新增didOpen回调,确保DOM元素已加载完成
  didOpen: () => {
    var availableTags = [
      "John",
      "Jane",
      "Janos",
      "Lisa",
      "Rita"
    ];
    $("#name").autocomplete({
      source: availableTags
    });
  }
}).then((result) => {
  if (result.isConfirmed) {
   Swal.fire('Saved!', '', 'success')
  }
})

关键说明

  • didOpen回调确保输入框已存在于DOM树中,此时调用autocomplete能成功完成元素绑定
  • 移除了原代码中独立的$(function(){})初始化块,避免异步加载导致的时序问题

内容的提问来源于stack exchange,提问作者KROM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 00:13:12