Как изменить/установить значение автозаполнения jQuery для автозаполнения с помощью jquery

У меня есть автозаполнение JQuery comboxbox. Как изменить/установить значение для автозаполнения с помощью jquery.

Я пробовал код ниже, но не работал

Выберите код, который отображается с помощью пользовательского combobox JQuery:

<select id="comboboxProv">
 <option value="1" selected>1</option>
 <option value="2">2</option>
 </select>

код для изменения значения автозаполнения, которое не работает

$('#comboboxProv').data('custom.combobox').value("Small");

Код для создания jquery autocomplete combobox

(function( $ ) {
$.widget( "custom.combobox", {
 _create: function() {
 this.wrapper = $( "<span>" )
 .addClass( "custom-combobox" )
 .insertAfter( this.element );

 this.element.hide();
 this._createAutocomplete();
 this._createShowAllButton();
 },

 _createAutocomplete: function() {
 var selected = this.element.children( ":selected" ),
 value = selected.val() ? selected.text() : "";

 this.input = $( "" )
 .appendTo( this.wrapper )
 .val( value )
 .attr( "title", "" )
 .addClass( "custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left" )
 .autocomplete({
 delay: 0,
 minLength: 0,
 source: $.proxy( this, "_source" )
 })
 /*.tooltip({
 tooltipClass: "ui-state-highlight"
 });*/

 this._on( this.input, {
 autocompleteselect: function( event, ui ) {
 ui.item.option.selected = true;
 // alert(ui.item);

 this._trigger( "select", event, {
 item: ui.item.option
 });
 },

 autocompletechange: "_removeIfInvalid"
 });
 },

 _createShowAllButton: function() {
 var input = this.input,
 wasOpen = false;

 $( "" )
 .attr( "tabIndex", -1 )
 //.attr( "title", "Show All Items" )
 .tooltip()
 .appendTo( this.wrapper )
 .button({
 icons: {
 primary: "ui-icon-triangle-1-s"
 },
 text: false
 })
 .removeClass( "ui-corner-all" )
 .addClass( "custom-combobox-toggle ui-corner-right" )
 .mousedown(function() {
 wasOpen = input.autocomplete( "widget" ).is( ":visible" );
 })
 .click(function() {
 input.focus();

 // Close if already visible
 if ( wasOpen ) {
 return;
 }

 // Pass empty string as value to search for, displaying all results
 input.autocomplete( "search", "" );
 });
 },

 _source: function( request, response ) {
 var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
 response( this.element.children( "option" ).map(function() {
 var text = $( this ).text();
 if ( this.value && ( !request.term || matcher.test(text) ) )
 return {
 label: text,
 value: text,
 option: this
 };
 }) );
 },

 _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.data( "ui-autocomplete" ).term = "";
 },

 _destroy: function() {
 this.wrapper.remove();
 this.element.show();
 }
});
})( jQuery );
</span>

Как изменить значение автозаполнения jquery combobox

Я упомянул один из рабочих, но даже это не работает для меня

пример

Благодарю.

1 ответ

Чтобы изменить значение combobox на основе выбора в раскрывающемся списке, это должно сделать трюк:

$("#combobox").change(function() {
 var curVal=$(this).val();
 $("#combobox").combobox("autocomplete",curVal); 
});

Должна быть функция для обработки изменения поля выбора combobox. При изменении он будет выполнять функцию combobox с автозаполнением текущего выбранного параметра в #combobox.

licensed under cc by-sa 3.0 with attribution.