如何在jquery自动完成中添加清除按钮

如何在jquery自动完成中添加清除按钮,jquery,html,internet-explorer,google-chrome,firefox,Jquery,Html,Internet Explorer,Google Chrome,Firefox,如何添加清除按钮jquery autocomplete。 添加我实际需要的图像 如何添加X按钮。它必须清除自动完成搜索文本框。这在ie10+中会自动出现,但在其他浏览器中不会出现 我正在添加jQuery自动完成。没有css <input type="text" id="skin"/> <script> $('#skin').autocomplete({ source: abcd.php }); </script> 使用CSS在输入字段中插入图像,然后使

如何添加清除按钮jquery autocomplete。 添加我实际需要的图像

如何添加X按钮。它必须清除自动完成搜索文本框。这在ie10+中会自动出现,但在其他浏览器中不会出现


我正在添加jQuery自动完成。没有css

<input type="text" id="skin"/> 
<script> 
$('#skin').autocomplete({ source: abcd.php }); 
</script>

使用CSS在输入字段中插入图像,然后使该图像可单击,并将其放入脚本中:

 $("#cancel").click(function() {
     $('#search').autocomplete('close');
 });

使用CSS在输入字段中插入图像,然后使该图像可单击,并将其放入脚本中:

 $("#cancel").click(function() {
     $('#search').autocomplete('close');
 });

基本上,我理解您需要一个按钮来清除自动完成输入元素的当前值

我也有同样的需求,最后我为jQueryUIAutoComplete插件编写了一个小扩展

剧本 完整代码如下:

;(function($) {

  $.widget( "ui.autocomplete", $.ui.autocomplete, {

  // extend default options
  options : {
    clearButton: false,
    clearButtonHtml: '&times;',
    clearButtonPosition: {
      my: "right center",
      at: "right center"
    }
  },

  _create: function() {

    var self = this;

    // Invoke the parent widget's method.
    self._super();

    if ( self.options.clearButton ) {
      self._createClearButton();
    }

  },

  _createClearButton: function() {

    var self = this;

    self.clearElement = $("<span>")
                    .attr( "tabindex", "-1" )
                    .addClass( "ui-autocomplete-clear" )
                    .html( self.options.clearButtonHtml )
                    .appendTo( self.element.parent() );

    if ( self.options.clearButtonPosition !== false && typeof self.options.clearButtonPosition === 'object' ) {
      if ( typeof self.options.clearButtonPosition.of === 'undefined' ) {
        self.options.clearButtonPosition.of = self.element;
      }    
      self.clearElement.position( self.options.clearButtonPosition); 
    }                       

    self._on( self.clearElement, {
      click: function() {
        self.element.val('').focus();
        self._hideClearButton();
      }
    });

    self.element.addClass('ui-autocomplete-input-has-clear');

    self._on( self.element, {
      input: function() {
        if ( self.element.val()!=="" ) {
          self._showClearButton();
        } else {
          self._hideClearButton();
        }
      }
    });

    self._on( self.menu.element, {
      menuselect: function() {
        self._showClearButton();
      }
    });

    // show clearElement if input has some content on initialization
    if( self.element.val()!=="" ) {
      self._showClearButton();
    } else {
      self._hideClearButton();
    }

  },

  _showClearButton: function() {
    this.clearElement.css({'display': 'inline-block'});
  },

  _hideClearButton: function() {
    this.clearElement.css({'display': 'none'});
  }

  });

})(window.jQuery);
演示 代码笔演示在这里:

附加信息
您还可以使用clearButtonHtml选项设置此按钮的HTML内容。此按钮使用jQuery UI位置脚本定位。如果不使用此脚本,请将clearButtonPosition选项设置为false,并使用CSS将其定位。

基本上,我知道您需要一个按钮来清除自动完成输入元素的当前值

我也有同样的需求,最后我为jQueryUIAutoComplete插件编写了一个小扩展

剧本 完整代码如下:

;(function($) {

  $.widget( "ui.autocomplete", $.ui.autocomplete, {

  // extend default options
  options : {
    clearButton: false,
    clearButtonHtml: '&times;',
    clearButtonPosition: {
      my: "right center",
      at: "right center"
    }
  },

  _create: function() {

    var self = this;

    // Invoke the parent widget's method.
    self._super();

    if ( self.options.clearButton ) {
      self._createClearButton();
    }

  },

  _createClearButton: function() {

    var self = this;

    self.clearElement = $("<span>")
                    .attr( "tabindex", "-1" )
                    .addClass( "ui-autocomplete-clear" )
                    .html( self.options.clearButtonHtml )
                    .appendTo( self.element.parent() );

    if ( self.options.clearButtonPosition !== false && typeof self.options.clearButtonPosition === 'object' ) {
      if ( typeof self.options.clearButtonPosition.of === 'undefined' ) {
        self.options.clearButtonPosition.of = self.element;
      }    
      self.clearElement.position( self.options.clearButtonPosition); 
    }                       

    self._on( self.clearElement, {
      click: function() {
        self.element.val('').focus();
        self._hideClearButton();
      }
    });

    self.element.addClass('ui-autocomplete-input-has-clear');

    self._on( self.element, {
      input: function() {
        if ( self.element.val()!=="" ) {
          self._showClearButton();
        } else {
          self._hideClearButton();
        }
      }
    });

    self._on( self.menu.element, {
      menuselect: function() {
        self._showClearButton();
      }
    });

    // show clearElement if input has some content on initialization
    if( self.element.val()!=="" ) {
      self._showClearButton();
    } else {
      self._hideClearButton();
    }

  },

  _showClearButton: function() {
    this.clearElement.css({'display': 'inline-block'});
  },

  _hideClearButton: function() {
    this.clearElement.css({'display': 'none'});
  }

  });

})(window.jQuery);
演示 代码笔演示在这里:

附加信息
您还可以使用clearButtonHtml选项设置此按钮的HTML内容。此按钮使用jQuery UI位置脚本定位。如果不使用此脚本,请将clearButtonPosition选项设置为false,并使用CSS将其定位。

按钮的html/CSS或关闭自动完成的javascript是否有问题?这不是很清楚,是要删除列表还是一次性隐藏它?不管怎样,用谷歌搜索似乎并不难。或者只需右键单击检查容器,例如,注意css类/id/which并调用$.thingy.css'display','none';例如..添加html和css代码我正在添加jQuery自动完成。没有css存在..$'skin'.autocomplete{source:abcd.php};您是否对按钮的html/css或关闭自动完成的javascript有问题?这不是很清楚,您想删除列表还是一次性隐藏它?不管怎样,用谷歌搜索似乎并不难。或者只需右键单击检查容器,例如,注意css类/id/which并调用$.thingy.css'display','none';例如..添加html和css代码我正在添加jQuery自动完成。没有css存在..$'skin'.autocomplete{source:abcd.php};它必须清除搜索文本框。它在ie10+中自动出现,但在其他浏览器中没有。我无法找到你。请清楚地解释这个问题,在JSFIDLE中,我错误地添加了搜索图标来代替取消。这对我不起作用。当您在输入之外单击时,字段将丢失模糊,并关闭结果,这不是因为按钮单击。它必须清除搜索文本框。它在ie10+中自动出现,但在其他浏览器中没有。我无法找到你。请清楚地解释这个问题,在JSFIDLE中,我错误地添加了搜索图标来代替取消。这对我不起作用。当您在输入外部单击时,字段将丢失模糊并关闭结果,而不是因为按钮单击。