Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    26

    focus non funzia in <DIV></DIV>.......

    Ciao a tutti. Pongo il mio problema:

    Ho la pagina A che ne include un'altra (la pagina B), il codice della pagina B (quella compresa tra i primi due tag <html> </html>) non lo posso toccare. Il codice della pagina A (e di quella B inclusa) è quello riportato di seguito (molto semplificato). Come si può vedere nelle pagine A e B sono presenti diversi layer (o meglio DIV, deve girare su IE 6), il mio problemone è che devo dare il focus sul campo cognome non appena la pagina viene caricata ma essendo questo campo all'interno di una DIV che è all'interno di una pagina che ne include un'altra il classico <body onload="document.frm.cognome.focus()"> non funzia e non so come rimediare. Qualcuno cortesemente mi sa dare una mano? Grazie in anticipo.



    <html>
    <head>
    </head>
    <SCRIPT language=JavaScript src="Menu.js"></SCRIPT>
    <SCRIPT language=JavaScript src="Main.js"></SCRIPT>
    <body>
    <div id="principale" style="z-index:1;width:900px;height:200px;top:10px;left:50p x;position:absolute">
    <table border=0 cellpadding=0 cellspacing=0 width=900>
    <tr><td>PRIMA DIV</td></tr>
    </table>
    </div>
    <div id="secondmenu" style="border:1px solid white;z-index:1;width:603px;height:22px;top:215px;left:347 px;position:absolute;background-color:#DAE7B0">
    <table align=right border=0 cellpadding=0 cellspacing=0 width="300px">
    </tr><td>SECONDA DIV</td></tr
    </table>
    </div>
    </body>
    </html>

    <html>
    <head>
    </head>
    <body onload="document.frm.cognome.focus()">
    <div id="corpo" style="position:absolute;top:235;left:50;width:900 ;z-index:1;background-color:white">




    <form name="frm" method=post action="ConfermaDati.asp">
    <table width=400 border=0 cellpadding=0 cellspacing=1 align=center id="tbl">
    <tr>
    <td align="center" colspan=2>
    <font face="verdana" size=3>REGISTRAZIONE UTENTI</font>
    </td>
    </tr>
    <tr>
    <td align="center" colspan=2>
    <font face="verdana" size=2></font>
    </td>
    </tr>
    <tr>
    <td align=right width=225 bgcolor=#F1F5E0>
    <font face="verdana" size=1>COGNOME:</font>
    </td>
    <td align=left width=375>
    <input style="font-family:verdana;font-size:8pt" type=text size=30 maxlength=30 name="cognome"">
    </td>
    </tr>
    <tr>
    <td align=right width=225 bgcolor=#F1F5E0>
    <font face="verdana" size=1>NOME:</font>
    </td>
    <td align=left width=375>
    <input style="font-family:verdana;font-size:8pt" type=text size=30 maxlength=30 name="nome">
    </td>
    </tr>
    </table>
    </form>
    </div>
    </body>
    </html>

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367

    Re: focus non funzia in <DIV></DIV>.......

    Ciao Franz76,

    non centra che l'input sia dentro al div... la cosa anomala è avere 2 <htm> e 2 <body>

    comunque copiando e incollando il tuo codice ho notato che alla riga 14
    codice:
    </tr><td>SECONDA DIV</td></tr
    manca il > al </tr>
    e il campo cognome
    codice:
    <input style="font-family:verdana;font-size:8pt" type=text size=30 maxlength=30 name="cognome"">
    ha 2 virgolette "

    correggendo il focus funziona

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    26
    Prima di tutto grazie per la risposta.

    Purtroppo il problema non è questo. Gli errori che hai trovato li ho corretti ma non funziona lo stesso. Mentre aspettavo una risposta ho fatto un po di prove e ho capito che il problema è creato dai due file .js inclusi.

    Questi file generano un menu a tendine con sottomenu. Eliminando questi file dalla pagina il focus funziona correttamente.

    Ho notato un'altra cosa. Con questi due file .js inclusi l'evento onload della pagina compresa tra la seconda coppia dei tags <html></html> non si verifica per niente!! Assurdo

    A questo punto non so dove sbattere la testa

    Hai qualche idea percaso??

    Grazie

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    ecco... io i js non li avevo :gren:

    sicuramente in quei js viene impostato l'onload...
    l'onload lo si può impostare o dal tag body (<body onload="funzione();">) o da javascript (window.onload=funzione)
    io per risolvere sti cazzi mi sono fatto una funzioncina che controlla eventuali impostazioni di onload, le mantiene e aggiunge altre funzioni... ti faccio un esempio per il tuo caso
    invece di così
    codice:
    <body onload="document.frm.cognome.focus();">
    .....
    ...
    prova così
    codice:
    <body>
    <script language="javascript">
    function aggiungiOnLoad(cosa){
    	if(window.onload){
    		strOnload = window.onload
    		strOnload = strOnload.toString()
    		strOnload = strOnload.substr(strOnload.indexOf('{')+1,strOnload.lastIndexOf('}')-strOnload.indexOf('{')-1)
    	}else strOnload=''
    	window.onload=new Function(strOnload+cosa)
    }
    aggiungiOnLoad('document.frm.cognome.focus();');
    </script>
    .....
    ...
    famme sape'

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    26
    Ciao Willy, grazie mille, ho provato ad inserire lo script che mi hai inviato ma purtroppo non funzia. Devo dire che comunque lo script è molto interessante e ne terrò sicuramente conto in futuro. In questo caso sono riuscito (dopo varie capocciate contro il muro ) ad aggirare l'ostacolo inserendo all'interno della pagina un'immagine invisibile e di peso insignificante e impostando il focus tramite l'evento onload dell'immagine.

    Comunque ti ringrazio ancora per l'aiuto


  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    26
    Ciao Willy, grazie mille, ho provato ad inserire lo script che mi hai inviato ma purtroppo non funzia. Devo dire che comunque lo script è molto interessante e ne terrò sicuramente conto in futuro. In questo caso sono riuscito (dopo varie capocciate contro il muro ) ad aggirare l'ostacolo inserendo all'interno della pagina un'immagine invisibile e di peso insignificante e impostando il focus tramite l'evento onload dell'immagine.

    Comunque ti ringrazio ancora 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.