Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Aggiungere e rimuovere autoCompletamento da textbox

    Ciao ragazzi, sto cercando di implementare questo autocompletamento ( Link ) e mi funziona benissimo, solo che io vorrei fare una cosa un pochino particolare ovvero:

    nella mia pagina ho

    una textbox e due radio (1 - radio "ricerca manuale" 2 - "ricerca con suggerimento")

    vorrei quindi che al caricamento essendo checked => "ricerca manuale" la mia textbox non mi mostri suggerimenti mentre se io clicco sulla seconda radio mi si attivi e quindi lo mostri...

    allora io ho fatto questo:

    agli input radio ho aggiunto un onclick che mi richiama questa funzione:

    codice:
    	insertRemoveSuggest: function(theRadio)
    	{
    		if(theRadio == 1){
    			var textRefer = document.getElementById('searchTextBoxInput');
    				textRefer.removeAttribute("alt");
    				textRefer.removeAttribute("class");
    		}
    		else{
    			var textRefer = document.getElementById('searchTextBoxInput');
    				textRefer.setAttribute("alt" , "_script_up/keys.php");
    				textRefer.setAttribute("class",'suggest_keys');
    		}
    		mySuggest();
    	}
    quindi se io clicco sulla 2 mi assegna una classe suggest_keys e lo script keys.php che mi esegue il suggerimento altrimenti mi rimuove quegli attributi.


    Poi nel file "autocomplete.custom" proposto dal sito ho fatto questa modifica: ho aggiunto tutto il codice in una function chiamata "mySuggest()" di modo che posso richiamarla
    codice:
    function mySuggest()
    {
    	
    }
    bene il problema è che se io clicco sulla radio 2 mi attiva l'autocompletamento ma se io riclicco sulla 1 anche se mi rimuove l'attributo mi continua a dare i suggerimenti....

    Come potrei ovviare a questo problema?

    Grazie mille a tutti anticipatamente!

  2. #2
    Ho anche provato a cambiare l' ID della textBox per non fagliela trovare al richiamo della funzione ma niente da fare... suggerimenti?

  3. #3
    Vi posto il contenuto del file: "autocomplete.custom":
    codice:
    function mySuggest()
    {
    	
    ;(function($){
    	$(document).ready(function(){
    		
    		////////////////////////////////////////////////////
    				
    		$(".suggest").each(function(){
    			var _alt = this.alt;
    			var _options = $(this).metadata();
    			if(_alt.length > 0){
    				$(this).autocomplete(_alt, _options);
    			}
    		});
    	
    		////////////////////////////////////////////////////
    			
    		$(".suggest_keys").each(function(){
    			
    			var _id = this.id;
    			var _name = this.name;
    			
    			//il name è obbligatorio
    			if(!_name)
    				return;
    				
    			var _alt = this.alt;
    			
    			var _hidden_id = _id ? _id + "_hidden" : false;
    			var _hidden_name = '';
    			//name
    			//console.log(_name);
    			if(_name && _name.indexOf("[") !== -1  && _name.indexOf("]") !== -1){
    				var _cre =  /\[.*\]/;
    				var _m = _cre.exec(_name);
    				var _t = _m.slice(0).toString().replace("[","").replace("]","");
    				_hidden_name = _name.replace(_t, ""+_t +"_hidden");
    			}else if(_name){
    				_hidden_name = _name + "_hidden";
    			}
    			//console.log(_hidden_name);
    			//DEBUG : var _field = $('<input type="text" value="" style="background:#000;color:#fff" />');
    			var _field = $('<input type="hidden" value="" />');
    			
    			if(_hidden_id)
    				_field.attr("id", _hidden_id);
    				
    			if(_hidden_name)
    				_field.attr("name", _hidden_name);
    				
    			$(this).after(_field);
    					
    			var _options = $(this).metadata();
    			_options.formatItem = function(row){
    				return row[1];
    				//row[0] + "  :  " + row[1] + "";
    			};
    			_options.formatResult = function(row){
    				//_field.val(row[0]);	
    				return row[1].replace(/(<.+?>)/gi, '');
    			};
    			
    			
    			//console.log(_options);
    			if(_alt.length > 0){
    				$(this).autocomplete(_alt, _options);
    			}
    		}).result(function(event, item) {
    			var _hidden_id = this.id + "_hidden";
    			$("#" + _hidden_id).val(item[0]);
    		});	
    		
    		////////////////////////////////////////////////////
    		
    		$(".suggest_table").each(function(){
    		
    			var _alt = this.alt;
    			
    			var _options = $(this).metadata();
    			var _autocomplete_options = _options.autocomplete || {};
    			_autocomplete_options.formatItem = function(row, pos){
    				return _table_format(_options, row, pos);
    			};
    			_autocomplete_options.formatResult = function(row){
    				return _table_result(_options, row);
    			};
    			
    			if(_alt.length > 0){
    				$(this).autocomplete(_alt, _autocomplete_options);
    			}
    		}).result(function(event, item) {
    			$(this).trigger("autocomplete.table.data", [item]);
    			var _hidden_id = this.id + "_hidden";
    			$("#" + _hidden_id).val(item[0]);
    		});
    		
    		function _table_format(options, row, pos){
    			if(!options.separator) options.separator = "#";
    			var _arr = row[1].split(options.separator);
    			var _str = "";
    			for(var _x = 0;_x < _arr.length;_x++){
    				_str += '<div class="fld_'+(_x + 1)+'">'+_arr[_x]+'</div>';
    			}
    			_str = "<div class=\"tbl\">" + _str + "</div>";
    			if(pos == 1){
    				jQuery(".ac_results > ul").css("position","relative");
    				var _int = '';
    				for(var _x = 0;_x < options.th.length;_x++){
    					_int += '<div id="int_'+(_x + 1)+'">'+options.th[_x]+'</div>';
    				} 
    				jQuery('<li class="ac_intestazione"><div class="tbl">'+_int+'</div>')
    				.appendTo(".ac_results > ul");
    			}else if(pos == 2){
    				jQuery(".ac_results > ul > li").not(".ac_intestazione").css("margin-top","20px");
    			}
    			return _str;
    		}
    		function _table_result(options, row){
    			return row[1].split("#").join(",");
    		}
    	});
    })(jQuery);
    
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.