Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797

    Abilitare/disabilitare parti di un form

    spero nn sia una cosa troppo complicata da fare.
    insomma, ho da fare un form di ricerca che può prendere tre diversi tipi di input in entrata.

    quindi diciamo che si può vedere come 3 form in uno:

    - una stringa
    - due stringhe
    - due stringhe e un numero.

    ora, vorrei che una parte disabilità le altre 2, come si può fare?

    per capirci: https://www.bookryanair.com/SkySales...T&pos=MYFLIGHT

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Una cosa del genere?
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Prova form</title>
    
    <script language="javascript" type="text/javascript">
    function toggleForm(radio) {
    	allFieldset = radio.form.getElementsByTagName('fieldset');
    	
    	for (var i = 0; i < allFieldset.length; i++) {
    		if (i != radio.value) {
    			allTags = allFieldset[i].getElementsByTagName("*");
    			for (var j=0; j < allTags.length; j++) {
    				if (allTags[j].name != radio.name) {
    					allTags[j].disabled = true;
    				}
    			}
    		}
    		else {
    			allTags = allFieldset[i].getElementsByTagName("*");
    			for (var j=0; j < allTags.length; j++) {
    				allTags[j].disabled = false;
    			}
    		}
    	}
    			
    }
    </script>
    
    </head>
    
    <body>
    <form nane="mioform" action="miaaction.php" method="post">
      <fieldset id="fieldset_1">
        <legend><input type="radio" name="radio" value="0" onclick="toggleForm(this);" />Prima parte del form</legend>
        Nome: <input type="text" name="nome" />
    
        Cognome: <input type="text" name="cognome" />
      </fieldset>
      <fieldset id="fieldset_2">
        <legend><input type="radio" name="radio" value="1" onclick="toggleForm(this);" />Seconda parte del form</legend>
        Provincia: <select name="citta">
         		     <option value="0"></option>
                     <option value="1">Venezia</option>
                     <option value="2">Padova</option>
                     <option value="3">Vicenza</option>
                     <option value="4">Verona</option>
                     <option value="5">Treviso</option>
                     <option value="6">Rovigo</option>
                     <option value="7">Belluno</option>
                   </select>
        Colore: <select name="colore">
        		  <option value="null"></option>
                  <option value="giallo">Giallo</option>
                  <option value="verde">Verde</option>
                  <option value="rosso">Rosso</option>
                </select>
      </fieldset>
      <fieldset id="fieldset_3">
        <legend><input type="radio" name="radio" value="2" onclick="toggleForm(this);" />Terza parte del form</legend>
        Bottone 1: <input type="button" name="bottone_1" value="Bottone 1" />
    
        Checkboxes: <input type="checkbox" name="check[]" value="1" />Uno  <input type="checkbox" name="check[]" value="1" />Due  <input type="checkbox" name="check[]" value="1" />Tre  <input type="checkbox" name="check[]" value="1" />Quattro  
        </fieldset>
    </form>
    </body>
    </html>
    Non ho previsto l'altra feature del form nella pagina che hai linkato, ovvero che clickando su un qualche elemento di una qualche parte del form, il radiobutton di quella parte del form si checki da solo e disabiliti il resto del form (pensaci tu). Il codice non è molto, ma sicuramente vi saranno vie più rapide di fare la stessa cosa... comunque, ho dei fieldset la cui legenda consiste in un appropriato radio button, tutti appartenenti al medesimo gruppo (stesso nome, così si autoescludono). Controllo quale viene selezionato, recupero i fieldset nel form e disabilito tutti gli elementi che non appartengono al fieldset del radio button checkato.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    da quello che capsico dal codice, se selezioni il radio button vien chiamata la funzione che abilta/disabilita tutto il fieldset?
    basterebbe mettere un onfocus sugli elementi e dovrebbe andare. right?

    c provo domani
    grazie mille.

  4. #4
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    cmq nn ho provato le mie modifiche, infatti nn mi servono.
    invece, come faccio a far si che al caricamento della pagina lo script venga abilitato?
    perchè così com'è ora è possibile cliccare su tt e 3 le parti, per disabilitare le altre devi prima cliccare su un radio button. si può fare che all'inizio sia abilitata solo 1 opzione?

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Aggiungi questa funzione sotto alla funziona attuale (toggleForm):
    codice:
    window.onload=function(){
    var element = document.mioform.elements['radio'];
    for(var k=0; k<element.length; k++){
    if(element[k].checked)toggleForm(element[k])
    }
    }
    e imposta un radio checked (spuntato) di default quello che vuoi
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    io lavoro con struts e la cosa non funziona.
    struts prende i valori del bean per creare la struttura (e quindi settare il check del radio sul valore giusto), quindi dovrei farlo a fine pagina non a inizio.
    ma nn è un problema cmq.
    va già bene così

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.