Показать сообщение отдельно
  #1 (permalink)  
Старый 10.07.2019, 06:31
Интересующийся
Отправить личное сообщение для Misha_White Посмотреть профиль Найти все сообщения от Misha_White
 
Регистрация: 17.02.2010
Сообщений: 16

Фабрика виджетов и autocomplite
Здравствуйте.
Прикрутил себе autocomplite на основе комбобокса.
https://jqueryui.com/autocomplete/#combobox

там идёт переопределение комбобокса и вот тут:
_removeIfInvalid: function( event, ui ) {
 
        // Selected an item, nothing to do
        if ( ui.item ) {
          return;
        }
 
        // Search for a match (case-insensitive)
        var value = this.input.val(),
          valueLowerCase = value.toLowerCase(),
          valid = false;
        this.element.children( "option" ).each(function() {
          if ( $( this ).text().toLowerCase() === valueLowerCase ) {
            this.selected = valid = true;
            return false;
          }
        });
 
        // Found a match, nothing to do
        if ( valid ) {
          return;
        }
 
        // Remove invalid value
        this.input
          .val( "" )
          .attr( "title", value + " didn't match any item" )
          .tooltip( "open" );
        this.element.val( "" );
        this._delay(function() {
          this.input.tooltip( "close" ).attr( "title", "" );
        }, 2500 );
        this.input.autocomplete( "instance" ).term = "";
      },

в случае неверного ввода (отсутствует в списке), поле ввода очищается и выводится сообщение.
Хотел сделать вместо этого добавление нового элемента при помощи ajax.У меня это даже получилось, до того момента, пока на форме не появилось два комбобокса. Если переопределить в $.widjet(), то все комбобоксы будут вести себя одинаково. В случае с очисткой и выводом сообщения это хорошо. Но мне нужно выполнять разные ajax-запросы с различными параметрами для каждого комбобокса.
Соответственно, мне необходимо переопределять эту функцию для каждого комбобокса, но как это сделать, ума не приложу. Натолкните на правильную мысль, пожалуйста.
Ответить с цитированием