Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    trovare i select di una pagina

    domandona! :sexpulp:
    Secondo voi è possibile realizzare uno script che si accorga della presenza di select (qualsiasi) in una pagina, e se lo trova lo nasconde con display="none".
    Poi magari in seguito ad un evento li rivisualizza ovviamente con display="block".

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    sì, sia procedendo esaminando il tipo degli elementi del form
    sia usando il getElementsByTagName('select')

    non ti posto nulla ora perchè devo scappare...
    se non provvede qualcun altro ci sentiamo + avanti

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    codice:
    function toggle_select(ff,dis) {
      for(var i=0; i<ff.length; i++) {
        if(ff.elements[i].type == 'select') {
          ff.elements[i].display = dis;
        }
      }
    }
    Va chiamato passando l'oggetto form e come vuoi modificare la proprieta` display:

    Con un link:
    visualizza select

    Con un bottone (dentro lo stesso form):
    <input type="button" value="visualizza select" onclick="toggle_select(this.form,'block');">

    Al posto di 'block' puoi mettere 'inline' (dipende da come sono impostate le tue select).
    Per nascondere metti 'none'
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Si ferma in:

    codice:
      for(var i=0; i<ff.length; i++) {
        if(ff.elements[i].type == 'select') {
          ff.elements[i].display = dis;
        }
    non esegue bene l'istruzione di riconoscimento del type

    ...ancora:
    codice:
    ff.elements[i].display = dis;
    non è meglio
    codice:
    ff.elements[i].style.display = dis;

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Hai doppiamente ragione.
    Il pezzo .style mi era rimasto incastrato nella tastiera e non e` apparso nel forum; poi ho controllato nel manuale, ed il tipo puo` essere "select-one" oppure "select-multiple".

    Se il tuo form contiene solo select normali ti basta:
    codice:
    function toggle_select(ff,dis) {
      for(var i=0; i<ff.length; i++) {
        if(ff.elements[i].type == 'select-one') {
          ff.elements[i].style.display = dis;
        }
      }
    }
    altrimenti:
    if(ff.elements[i].type == 'select-one' || ff.elements[i].type == 'select-multiple') {
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    funziona con 'select-one'!!!!

    Domanda:
    che differenza c'è tra 'select-one' e 'select-multiple'???? :master:

    Questo script mi serve per fare scomparire i select,in apertura di pagina, perchè utilizzo un div con livello (problemino + volte discusso ed inrisolvibile) per un messaggio di caricamento (aspetto estetico) ke non verrà bucato dai select. Appena la pagina viene completata, quindi deve scomparire il div, chiamo la funzione che fa rivisualizzare tutti i select fatti scomparire in apertura.

    Ho solo questo problema!
    Forse non risolvibile...dimmi tu:
    il nome del form viene passato manualmente attraverso:
    codice:
    toggle_select(document.theform ,'none');
    per fare scomparire i suoi select.
    Come posso ricavare in modo automatico il suo nome?
    Ricordando che NON posso passarlo attraverso
    codice:
    this.form
    come hai citato tu nell'esempio di un bottene ivi contenuto.



    Ancora:
    mi potresti consigliare un vero manuale, non libricini del cavolo.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    select-multiple sono le select con l'attributo multiple="true" (vedi i manuali di HTML per riferimento)

    Manuale JS: http://www.devguru.com/technologies/...ipt_index.html
    Un altro lo trovi sul sito del W3C

    Se e` l'unico form della pagina:
    document.forms[0]

    Nota:
    Lo script deve girare DOPO che il form con i suoi select sono stati caricati.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    del select: giusto!!! NON CI AVEVO PENSATO!

    del munuale DAVEGURU lo conosco ed è anche ben fatto, ma dicevo un manuale scritto!

    Per il resto, è li la contraddizione!
    Mi serve lo script durante il caricamento e non dopo aver visto che roba viene caricata, quindi mi sa che mi conviene nominare tutti i form con lo stesso nome di tutte le pagine!

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Per il nome dei form, la sintassi document.forms[0] [1], ... ti evita di dover conoscere il nome.
    Ma non puoi far sparire un oggetto prima di caricarlo.


    Credo che ti convenga caricare tutto in un <div> nascosto, e farlo apparire all'onload della pagina.

    <body onload="document.getElementById('provv').display=' none'; document.getElementById('definit').display='block' ;">
    <div id="provv" style="display:block; width:100%; height:100%;">
    ... il messaggio di attesa ...
    </div>
    <div id="definit" style="display:none;">
    ....
    il resto della pagina
    ...
    </div>
    </body>
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Mi sono accorto di un piccolo problema.

    In una funzione attivata con onload, contenete:
    codice:
    toggle_select(document.forms[0],'none');
    in cui:
    codice:
    function toggle_select(ff,dis) {
      for(var i=0; i<ff.length; i++) {
        if(ff.elements[i].type == 'select-one' || ff.elements[i].type == 'select-multiple') {
          ff.elements[i].style.display = dis;
        }
      }
    }
    nascondo i selct contenuti nel form della pagina, poi li rivisualizzo eseguita una data operatazione.

    Il problema consiste nel fatto che se la pagina non contiene nessun form le operazioni in onload della pagina non vengono eseguite.
    Come posso valutare la presenza di un form??

    Ho provato con:
    document.body.all.tags("form");
    e
    document.body.getElementsByTagName("form");
    niente da fare!
    che ci sia o no un form restituisce: [object]

    L'obiettivo è escludere l'esecuzione diella funzione
    codice:
    toggle_select
    se non è presente alcuno form.

    Idee migliori della mia???

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.