Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    86

    form dinamica su firefox non funziona

    Ho una semplice form dinamica fatta così:
    codice:
    <body>
    <script type=text/javascript>
      // _w : which ID (1) or (2)
      // _h : (h)ide or (s)how
    function toggleT(_w,_h)
    {
      if (document.all)
      { // è IE
        if (_h == 's') eval("document.all." + _w + ".style.visibility='visible';");
        if (_h == 'h') eval("document.all." + _w + ".style.visibility='hidden';");
      }
      else
      { // non è IE
        if (_h == 's') eval("document.layers['" + _w + "'].visibility='show';");
        if (_h == 'h') eval("document.layers['" + _w + "'].visibility='hide';");
      }
    }
    </script>
    <span id="divt1" style="visibility:hidden; position:relative; top:0; left:0">
    <form action="javascript:#">
    scrivi il tuo nome:
    <input name="t1" type="text" value="">
    </form>
    </span>
    <form>
      
    
    
    
        Sei un nostro cliente? 
    
    	SI
      <input name="r1" type="radio" value="" onClick="toggleT('divt1','s')">
      	No
      <input name="r1" type="radio" checked value"" onClick="toggleT('divt1','h')">
      </p>
    </form>
    </body>
    non fa altro che domandare al cliente se è un nostro cliente, se clicca SI si apre una casella di testo dove scrivere il proprio nome.

    Su Internet explorer nessun problema, ma sul firefox non mi apre la casella se clicco SI.

    dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    sbagli partendo dal presupposto che se non e' IE (o opera) gli dai da valutare la sintassi valida per il solo NN4

    dovresti, se il DOM e' document.getElementById, valutare
    codice:
    eval("document.getElementById('" + _w + "').style.visibility='show';");
    gli eval, in tutti e tre i casi sono inutili
    nell' unico caso in cui sembrerebbe strettamente necessario, IE, potresti usare la sintassi
    document.all.item(id)

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    86
    perdonami ma non ho capito bene la risposta.
    cos'è il DOM??
    quale cambiamento devo fare al codice?


    scusami ma sono ancora un neofita di scripting.

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    DOM sta per document object model,
    e quando chiedi
    if(document.all)
    chiedi se il DOM supportato e' all, che vale solo x IE e opera

    i browser moderni, aderenti agli standard, supportano il DOM document.getElementById

    ti riscrivo lo script senza eval, perche' deprecato e inutile
    codice:
    function toggleT(_w,_h){
      if(document.getElementById){
        document.getElementById(_w).style.visible=(_h=='s')?'visible':'hidden';
      }
      else if(document.all){
        document.all[_w].style.visible=(_h=='s')?'visible':'hidden';
      }
      else if(document.layers){
        document.layers[_w].visibility=(_h=='s')?'show':'hide';
      }
    }
    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    86
    non mi da errori di sintassi o altri....
    però ora non funziona ne su IE che su Firefox.


  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    scusa, mi sono inventato la proprieta' css "visible" :rollo:
    codice:
    function toggleT(_w,_h){
      if(document.getElementById){
        document.getElementById(_w).style.visibility=(_h=='s')?'visible':'hidden';
      }
      else if(document.all){
        document.all[_w].style.visibility=(_h=='s')?'visible':'hidden';
      }
      else if(document.layers){
        document.layers[_w].visibility=(_h=='s')?'show':'hide';
      }
    }
    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    86
    GRAZIE TANTISSIMO!

    ho tante cose ancora da imparare....


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.