簡體   English   中英

$ .ajax自動完成無法在IE 11中運行?

[英]$.ajax autocomplete not working in ie 11 in jquery?

我遇到的問題是,我下面的自動完成代碼可在chrome和firefox上運行,但不能在Internet Explorer 11上運行。任何人都可以幫助我解決我的代碼。 我認為它的$.ajax問題不支持,但是任何人都可以通過下面的代碼來幫助我。 謝謝。

$("#searchTextField").autocomplete({
  minLength: 2,
  focus: function(event, ui) {
    event.preventDefault();
  },
  source: myData,
  select: function select(event, ui) {
    event.preventDefault();
    var url = '#{request.contextPath}/index.xhtml';
    var searchValue = ui.item.value;
    var data = new FormData();
    data.append('searchValue', searchValue);
    $.ajax({
      url: url,
      data: data,
      method: "POST",
      processData: false,
      contentType: false,
      cache: false,
    }).done(text => {
      $('#results').append($(text).find('#textTable'));
      $('#results').append($(text).find('table'));
      $('#results').append($(text).find('#bestTable'));
      $("#clearone").show();
    });
  },
  response: function response(event, ui,) {
    if (!ui.content.length) {
      var message = {
        value: "",
        label: "NOTHING FOUND"
      };
      ui.content.push(message);
    }
  }
});

這有兩個原因無法在IE中起作用。 首先,您需要在response處理程序函數中添加一個逗號結尾:

response: function response(event, ui,) {

其次,您在done()使用了箭頭功能; IE的任何版本都完全不支持這些功能。

$.ajax({ /* ... */ }).done(text => {

請改用傳統的匿名函數。 這是這些修復程序的完整示例:

$("#searchTextField").autocomplete({
  minLength: 2,
  focus: function(event, ui) {
    event.preventDefault();
  },
  source: myData,
  select: function select(event, ui) {
    event.preventDefault();
    var url = '#{request.contextPath}/index.xhtml';
    var searchValue = ui.item.value;
    var data = new FormData();
    data.append('searchValue', searchValue);

    $.ajax({
      url: url,
      data: data,
      method: "POST",
      processData: false,
      contentType: false,
      cache: false,
    }).done(function(text) {
      $('#results').append($(text).find('#textTable'));
      $('#results').append($(text).find('table'));
      $('#results').append($(text).find('#bestTable'));
      $("#clearone").show();
    });
  },
  response: function response(event, ui) {
    if (!ui.content.length) {
      var message = {
        value: "",
        label: "NOTHING FOUND"
      };
      ui.content.push(message);
    }
  }
});

最后,請注意,您可以通過使用開發人員工具(按F12在大多數瀏覽器中打開它們)並在控制台中查看錯誤來調試JS問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM