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


Не догоняю...
т.е. я в options myFunc пишу код функции по умолчанию? и в случае необходимости предаю другую функцию при создании?

$.widget( "custom.combobox", {
    options:{
     myFunc: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 + "\' отсутсвует в справочнике. Для добавления обратитесь к Администратору" )
			         .tooltip( "open" );
			        this.element.val( "" );
			        this._delay(function() {
			        this.input.tooltip( "close" ).attr( "title", "" );
			        }, 2500 );
			        this.input.autocomplete( "instance" ).term = "";
							      },

    },
.....
  this._on( this.input, {
          autocompleteselect: function( event, ui ) {
            ui.item.option.selected = true;
            this._trigger( "select", event, {
              item: ui.item.option
            });
          },
  
          autocompletechange: "_removeIfInvalid"
        });
....
_removeIfInvalid: function( event, ui ) {
    this.options.myFunc.call(this, event, ui);
}


и затем:
$('#selector').combobox({myFunc: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;
							          }
							   
							          // add invalid value
....
							          })

Последний раз редактировалось Misha_White, 10.07.2019 в 09:43.
Ответить с цитированием