Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315

    [JSP] Tasto invio da associare a button

    Salve, il mio problema è il seguente: ho una pagina di ricerca, con dei campi per "raffinarla" e il classico pulsante "Cerca". Il mio obiettivo è fare in modo che se premo il tasto INVIO deve partire automaticamente la ricerca.

    Alcuni dei campi di ricerca, però, sono delle liste combo e se scorro la lista con le freccette sulla tastiera poi per selezionarle devo premere INVIO. Come posso far distinguere questi due casi in cui premo INVIO?

    Spero di essere stato chiaro.

  2. #2
    Puoi gestire tutto tramite javascript. Sui tuoi campi input richiami una funzione sull'evento onkeydown passando come argomento l'id del pulsante da "premere"

    Codice PHP:
    <input type="text" onkeydown="return eseguiInvio('idTuoPulsante',event);"  .... >

    function 
    eseguiInvio(IdPulsante,ev){
        if ((
    ev.which && ev.which == 13) || (ev.keyCode && ev.keyCode == 13)){
            
    document.getElementById(IdPulsante).click();
            return 
    false;
        }else
            return 
    true;

    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Non credo di aver ben capito...
    Se io sto scrivendo in una input text e poi batto invio lui deve far partire subito la ricerca, in quanto è come se avessi premuto il button "Cerca".
    Ma se tengo una combo box con più valori e mi si apre la tendina con la possibilità di scegliere il valore, il tasto INVIO deve solo selezionare il valore, senza far partire la ricerca. E' alla seconda volta che lo premo che deve premere in automatico il tasto "Cerca".

    Dal codice che mi hai gentilmente scritto, come fa ad avvenire questo?

    PS Premetto che non l'ho provato ancora perchè non ho il codice sottomano!!!

  4. #4
    E' esattamente quello che fa il codice che ho postato. Devi solo aggiungere la chiamata alla funzione onkeydown anche sulla combobox.
    Al mio segnale... scatenate l'inferno!

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Ho provato a seguire le tue istruzioni, ma non funziona...
    La ricerca non parte...

    io tengo

    codice:
    <input type="button" class="button" value="Cerca" styleId="searchButton" onkeydown="return eseguiInvio('searchButton',event);" onclick="GetObbligatori('search')" />
    Va bene scritto così?

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Ho messo degli alert nella funzione, ma non vengono mai visualizzati...

    Devo presuppore che cos' com'è scritto non viene mai cattturato l'evento onKeyDown?

  7. #7
    Può darsi che la funzione sia errata. Posta il codice che hai scritto.
    Al mio segnale... scatenate l'inferno!

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    La stessa che mi hai suggerito tu

    codice:
    function eseguiInvio(IdPulsante,ev){
        	if ((ev.which && ev.which == 13) || (ev.keyCode && ev.keyCode == 13)){
            	document.getElementById(IdPulsante).click();
            	return false;
        	}else
            	return true;
    	}
    
    <input type="button" class="button" id="searchButton" value="Cerca" onkeydown="return eseguiInvio('searchButton',event);" onclick="GetObbligatori('search')" />
    Da quanto sto capendo io, quando premo invio non otengo nessun effetto in quanto il pulsante in questione non è "focus()" in quel momento.

    Correggimi se sbaglio

  9. #9
    L'onkeydown va sui campi di testo, non sul bottone.

    Codice PHP:
    <input type="text" id="campoDiTesto" value="valore" onkeydown="return eseguiInvio('searchButton',event);" />

    <
    input type="button" class="button" id="searchButton" value="Cerca"  onclick="GetObbligatori('search')" />

    <
    script>
    function 
    eseguiInvio(IdPulsante,ev){
         if ((
    ev.which && ev.which == 13) || (ev.keyCode && ev.keyCode == 13)){
              
    document.getElementById(IdPulsante).click();
              return 
    false;
         }else
              return 
    true;
    }
    </script> 
    Al mio segnale... scatenate l'inferno!

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Io ho eseguito il codice che mi hai suggerito. Avviene esattamente l'opposto di quello che voglio, nel senso che se clicco "INVIO" quando seleziono un campo parte la ricerca...

    io invece voglio che la ricerca parta quando non sto scrivendo o selezionando nulla.

    PS: perchè se aggiungo questo codice

    codice:
    <script> 
     var z=dhtmlXComboFromSelect("aaU");
     z.enableFilteringMode(true);
    </script>
    alla fine di un oggetto select, questo non viene più visto nella pagina html???

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