Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [CSS] visibilità form

  1. #1

    [CSS] visibilità form

    ciao ragazzi, ho una form dove l'utente seleziona i dati di un bonifico, di default deve essere italiano con i dati con la nomenclatura italiana (cab abi ecc..) mentre se nella bombo seleziona un'altro paese deve cambiare la form con una form internazionale (comune ai paesi stranieri)

    come faccio? c'è modo di usare un div che cambia la sua visibilità (2 div che si scambiano)?

    non so se sono stato chiaro

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Se vuoi semplificarti la vita devi usare correttamente i tag.

    Quindi il tuo <form> sara` suddiviso in tanti blocchi, <fieldset>.
    E il tuo form conterra` tutti i campi possibili, correttamente inseriti nei vari filedset.
    Puo` essere che alcuni di questi filedset non servano in alcune condizioni. In tal caso resteranno nascosti (display: none; oppure height: 0).

    Poi hai necessita` di JS che mostri/nasconda i filedset in base alle varie condizioni.
    E` necessario che il JS sia di tipo non invasivo: se uno non ha JS abilitato DEVE poter fare tutto lo stesso (eventualmente con l'aiuto del programma sul server). Tieni presente che sei in ambito pubblico: non puoi scegliere i tuoi utenti in base al PC che hanno o in base agli handicap che non hanno: se non conosci l'accessibilta` e` meglio che la studi prima di proseguire.

    PS: lo sai gia` che tra pochi mesi non saranno piu` accettati bonifici che non riportino il codice IBAN completo? E` una decisione che hanno preso tutte le banche, per quanto ne so.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    si, ho un webservice che valida un iban in ingresso.

    ora sto modificando una vecchia jsp che prendeva i vecchi campi italiani, e ho come compito differenziare la form se l'iban è italiano o estero.

    non volevo usare Js appunto per i motivi da te detti, se c'è modo con CSS sarebbe meglio

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il CSS da solo non puo` farlo.
    Un evento puo` essere gestito da JS, oppure da un programma lato server; non dai CSS da soli.

    Se vuoi ti posso dire che lo strumento che usa la mia banca e` gestito lato server: ogni modifica importante del form viene inviata al server, che provvede a rispedire qualcosa.
    Non so se usino una tecnologia tipo Ajax, o se ricarichino la pagina per intero: la cosa e` piuttosto veloce (per lo meno nelle ore in cui io uso il servizio di banca on-line).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    codice:
    <body>
    
        <form name="ibanform"  action="#" method="get">
    	<table align="center" id="cordBancarie" border="1" cellspacing="0">
    		<tr>				
    		<td align="left" nowrap="nowrap">
    			ISO CODE <select name="isoCode"  onchange='
    					document.getElementById("coordinateItaliane").style.visibility = "hidden";
    					document.getElementById("coordinateEstere").style.visibility = "visible";
    				'>
    						<option value="IT" selected="selected">Italia</option>
    						<option value="XX">Estero</option>
    				</select>
    		</td>				
    		<td align="left" nowrap="nowrap">
    			<div id="coordinateItaliane">italia</div>
    			<div id="coordinateEstere" style="visibility: hidden;">estero</div>	
    		</td>
    		</tr>
    	</table>	
        </form>
    </body>

    ma :

    1) se torno su italia non rivisualizza come prima
    2) i 2 div comunque occupano lo spazio anche quando non sono visibili...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Certo che se usi le tabelle non andiamo d'accordo. E non vai d'accordo neppure con i CSS che ti si rivoltano contro (usi strutture fatte per altri socpi, e farle funzionare per quello che vuoi tu potrebbe none ssere possibile).

    Comunque ti consiglio di andare a vedere cosa stai usando (un pezzo di manuale lo devi avere sottomano): non devi usare la visibilita`, perche` non toglio lo spazio, ma il display (come ti avevo consigliato).

    Comunque non ritengo che puoi fare una cosa professionale (quale si richeide ad una banca) con le scarse conoscenze che hai: ti conviene far pratica su siti diversi: ci risparmi in tempo e in fegato.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    grazie dei consigli, io avrei fatto tutto con css e javascript, ma il codice (di per se non buono) lo posso solo integrare... e le tabelle non le uso più da 5 anni.

    per la scarsa capacità, se ti riferisci a css hai ragione (non sono un programmatore web) se ti riferisci ad un contesto generale... piano con le sentenze

  8. #8
    ok, al posto di "visible" uso "display"

    ma come faccio a fare una funzione che "switchi" i due div?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ad esempio:
    Javascript
    codice:
    function cambiadisp (oggetto) {
      var ogg = document.getElementById(oggetto);
      ogg.style.display = (ogg.style.display=='none') ? 'block' : 'none';
    }
    Da richiamare con:
    ... onclick="cambiadisp('ID_OGGETTO');"
    dove ID_OGGETTO va sostituito con l'id che hai assegnato all'oggetto di cui vuoi fare il toggle della proprieta`
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.