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

    jquery autocomplete - onfocusout selezione automatica primo elemento

    Ciao a tutti, sto cercando di usare "autocomplete" con jquery.

    Funziona, ma ho un problema...

    Se l'utente scrive senza cliccare... mi visualizza nella lista alla fine solo 1 risultato e fin qui giusto, solo che se l'utente non ci clicca sopra, non mi si riempi l'input hidden id.. e perciò il filtro della ricerca non funziona.

    Io vorrei che alla perdita del focus dall'input di ricerca, selezionasse in automatico il primo elemento della lista presente.

    come succede in questo sito: http://www.nuovecostruzioni.it/

    il mio codice è il seguente:

    jQuery('#form_ricerca_aree #tag').autocomplete({
    source: 'ajax/auto-ricerca-aree.php',
    minLength:2,
    selectFirst: true,
    change:function(event,ui){
    if(!ui.item){
    jQuery(this).val('');
    jQuery('#form_ricerca_aree #id').val('');
    return false;
    }
    },
    select:function(event,ui){
    jQuery('#form_ricerca_aree #id').val(ui.item.id);
    }
    });



    <form id="form_ricerca_aree" method="get" action="ricerca.php">
    <input type="hidden" id="dpr" name="dpr" value="profilo" />
    <input type="hidden" id="fpr" name="fpr" value="ricerca" />
    <input type="hidden" id="id" name="id" value="" />
    <input type="hidden" id="tip" name="tip" value="area-interesse" />
    <input type="text" class="input_ricerca" id="tag" name="tag" placeholder="Inserisci Area di interesse" title="Es. Milano" value="">
    <input type="submit" class="submit_ricerca" id="submit_ricerca" name="submit_ricerca" title="Cerca " value="">
    </form>

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma l'esempio usa dojo non jquery o sbaglio?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    si certo usa dojo ma io sto usando jquery.. era solo per far capire come vorrei funzionasse alla fine.

    ho modificato il codice in questo modo, che mi sembra quasi andare...
    solo che mi pare un po contorto...

    magari si può fare in modo più elegante...

    codice:
    jQuery('.input_ricerca').click(function () {
    			jQuery(this).val("");	
    			jQuery('#fo').val("");	
    		});
    
    function ricerca_focusout(term, form, file_ajax) {
    			jQuery.ajax({
    				type: "GET",
    				url: file_ajax,
    				data: "term="+term,
    				dataType: "json",
    				success: function(response){
    					if (response == null) {
    						jQuery(form + " .input_ricerca").val("");
    						jQuery(form + " #id").val("");
    					} else {
    						jQuery(form + " .input_ricerca").val(response[0]['value']);
    						jQuery(form + " #id").val(response[0]['id']);
    					}
    				}
    			});
    		}     
    		
    		function input_focusout(form, file_ajax) { 			
    			jQuery(function () {
    				if (jQuery(form + ' .input_ricerca').val().length >= 2 && jQuery(form + ' #fo').val() != "no") {
    				ricerca_agenzie_focusout(jQuery(this).val(),form,file_ajax);
    				} else if(jQuery(form + ' .input_ricerca').val().length <= 1) {
    					jQuery(form + ' .input_ricerca').val("");
    				}
    			});
    		}
    		
    		jQuery('#form_ricerca_aree #tag').autocomplete({			
    			source: 'ajax/auto-ricerca-aree.php',			
    			minLength:2,			
          		/*change:function(event,ui){
    				if(!ui.item){
    					jQuery(this).val('');
    					jQuery('#form_ricerca_aree #id').val('');
    					return false;
    				}
    			},*/
          		select:function(event,ui){
            		jQuery('#form_ricerca_aree #id').val(ui.item.id);
    				jQuery('#form_ricerca_aree #fo').val("no"); //focusout non attivo
            	}    
          	});
    				  
    		
    		jQuery('#form_ricerca_aree .input_ricerca').focusout(function() {	
    			alert("out");		
    			input_agenzie_focusout("#form_ricerca_aree","ajax/auto-ricerca-aree.php");					
    		});
    		
    		jQuery('#form_ricerca_aree #submit_ricerca').click(function () {
    			input_focusout("#form_ricerca_aree","ajax/auto-ricerca-aree.php");			
    			document.forms["form_ricerca_aree"].submit();			
    		});

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Premesso che se funziona non mi porrei troppi problemi, io invece che selezionare il primo record (che non è detto che sia quello corretto, ma ho solo cliccato involontariamente fuori dall'input per errore) non farei chiudere il div "lista" e avviserei seleziona una....
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    far selezionare il primo della lista, si basa sul principio che più l'utente scrive, più il risultato sarà preciso.. fino ad essere 1 risultato o 0...

    comunque il codice non funziona così com'è...

    ad esempio se scrivo e vado a cliccare una voce della lista, parte anche il focusout del campo... che avrebbe il controlllo... ma non il controllo non funziona perchè arriva all'if prima che il campo del controllo venga valorizzato.

    se ci metto un alert funziona.. probabilmente perchè passa abbastanza tempo

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da Pandax
    far selezionare il primo della lista, si basa sul principio che più l'utente scrive, più il risultato sarà preciso.. fino ad essere 1 risultato o 0...
    Ok, come non detto
    comunque il codice non funziona così com'è...

    ad esempio se scrivo e vado a cliccare una voce della lista, parte anche il focusout del campo... che avrebbe il controlllo... ma non il controllo non funziona perchè arriva all'if prima che il campo del controllo venga valorizzato.

    se ci metto un alert funziona.. probabilmente perchè passa abbastanza tempo
    Non saprei non mi sono studiato il codice.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    non va... o va in parte.. e da errori..

    qualcuno sa darmi una mano?

    http://pastebin.com/VwJ664Qp


    Data e ora: 18/07/2012 20:53:24
    Errore: ReferenceError: input_agenzie_focusout is not defined
    File sorgente: http://www.puntore.it/index.php
    Riga: 219

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 © 2026 vBulletin Solutions, Inc. All rights reserved.