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

    Reset di un Select/option

    Ciao,
    ho questo problema: vorrei resettare il valore di un oggetto select, tramite evento onClick sul bottone Reset.

    quindi ho pensato che si potesse fare più o meno in questo modo:


    <form name="frm_ricerca" action="pagina.php" method="post">
    ...
    <select name="utente" class="default_option">
    .....
    </select>
    ...
    <input type="reset" name="reset" value="Reset" onclick=resetForm(document.frm_ricerca);/>
    </form>



    dove resetForm è :
    <script language="javascript">

    function resetForm(frm) {
    frm.utente.selectedIndex =;
    return true;
    }
    </script>

    dove sto sbagliando ??

  2. #2
    Beh, non puoi lasciare un assegnamento vuoto, è un errore di sintassi.

    Se non hai option selezionate programmaticamente (ovvero, la option di default è sempre la prima), puoi fare:

    frm.utente.selectedIndex = 0;

    altrimenti, puoi fargliene selezionare nessuna con:

    frm.utente.selectedIndex = -1;
    I DON'T Double Click!

  3. #3
    ciao,
    grazie per la risposta.

    ho provato sia con 0 che con -1 ma non funziona


    cliccando sul tasto reset, ottengo solo l'azzeramento di un campo input non del select/option.


    ciao

  4. #4
    allora, fai così:

    <input type="reset" name="reset" value="Reset" onclick=resetForm(this.form);/>


    function resetForm(frm) {
    frm.getElementsByName('utente')[0].selectedIndex = -1;
    return true;
    }
    I DON'T Double Click!

  5. #5
    non funzia...

  6. #6
    allora, mi sono reso conto di 2 cose:

    Uno: gli oggetti form non hanno la funzione getElementsByName()...

    Due: il reset ripristina gli elementi allo stadio iniziale, che avevano quando caricavi la pagina, quindi anche se esegui una funzione sull'evento onclick del reset, l'effetto viene vanificato dal reset stesso.

    Quello che devi fare per far funzionare la cosa è:

    codice:
    function resetForm() {
    	var sel = document.getElementsByName('utente')[0]
    	sel.selectedIndex = -1;
    	return false;
    }
    ritornando false, blocchi l'esecuzione dell'evento default del pulsante (il click che causa il reset, insomma)

    ed assegnare all'input la funzione:

    <input type="reset" name="reset" value="Reset" onclick="return resetForm();"/>

    in questo modo.

    Il problema, così, è che il reset non viene eseguito, quindi dovresti aggiungere alla funzione una serie di istruzioni per azzerare anche gli altri elementi della form.

    Io farei così: creerei una funzione per effettuare il reset e la assegnerei all'evento reset della form, in modo da poter controllare quello che succede.

    io farei così:
    codice:
    function resetForm(form) {
    	var elms = form.elements;
    	for(i = 0; i < elms.length; i++)
    	{
    		switch(elms[i].tagName.toLowerCase())
    		{
    			case 'input':
    				switch(elms[i].type){
    					case 'text':
    						elms[i].value = '';
    					break;
    					case 'password':
    						elms[i].value = '';
    					break;
    					case 'checkbox':
    						elms[i].checked = false;
    					break;
    					case 'radio':
    						elms[i].checked = false;
    					break;
    				}
    			break;
    			case 'select':
    				elms[i].selectedIndex = -1;
    			break;
    		}
    	}
    	
    	return false;
    }
    inoltre assegnerei la funzione così:

    <form action="" method="post" onreset="return resetForm(this);">
    I DON'T Double Click!

  7. #7
    ok, questo codice funziona

    ti ringrazio moltissimo per l'aiuto!

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.