Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70

    labirinto di div: getElementById

    visto che stasera ho una maledizione particolare e non mi funziona un piffero, cerco di illustrare uno schemino per capire dove sbaglio.

    file start.html
    codice:
    .....
    <div class="principale">
    
        <div id="outputList" class="principalechat">
        ....blablabla....
        <span style="cursor:pointer;" onclick="funzfunz(pippo);">testoprova</span>
        </div>
       
    
        <div id="principalebarrachat" class="principalebarrachat">
        ....blablabla....
         	<form id="chatForm">
                ....blablabla....
                 <input type="text" size="40" id="inputtesto">
                     ....blablabla....
            </form>
         ...blablabla....
         </div>
    
    </div>

    la mia funzione funzfunz() è

    codice:
    function funzfunz(a) {
     	var barra = parent.principale.principalebarrachat.document.getElementById('inputtesto');
    	var barraValue =  a ;
    	barra.value = barraValue;
    	return;
    }
    ovviamente ho semplificato il codice evidenziando solo quello che voglio chiedervi; semplicemente alla pressione della scritta "testoprova" , dovrebbe andarmi a scrivere "pippo" nella casella di input.
    ma non lo fa.. e non c'è vero. immagino che il "trucco" stia nella riga del getElementById, probabilmente sbaglio l'ordine delle voci, ma ho provato di tutto e non riesco a capire il perché.

    riuscite ad aiutarmi? grazie mille :master:

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    vedo che e' un' abitudine, quindi, scusa se puo' suonare duro, ma per favore pochi voli pindarici nei titoli
    servono titoli significativi e fortemente esplicativi,
    senza eccezioni, altrimenti chiusura e cestino

    var barra = document.getElementById('inputtesto');
    basta e avanza nel caso specifico

    visto che sembri sparare un po' alla cieca:
    parent e' l' oggetto finestra superiore rispetto al window in cui ti trovi,
    se il documento non e' in iframe o frame parent, cosi' come top, equivale a window (o self)

    principale e' una classe,
    non c'e' modo diretto di riferirsi a elementi contenuti in un elemento che ha assegnata una determinata classe, perche' appunto una classe puo' essere assegnata a piu' elementi

    idem per id, se non riferendosi all' elemento stesso appunto via document.getElementById('id_elemento')

    probabilmente sei stata tratta in inganno dall' istruzione spesso ricorrente
    document.nomeForm.nomeElemento.value
    ma che appunto e' un caso specifico per i form e si appoggia, per riferirsi agli elementi corretti, ai name (non agli id) di <form> e degli elementi che ne fanno parte (<input>, <textarea>, <select>...)

    spero sia comprensibile e schiarisca le idee

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70
    sorry per il titolo.

    e grazie per il chiarimento su parent e famiglia.

    oltre a mettere correttamente
    var barra = document.getElementById('inputtesto');

    l'errore era un altro:
    onclick="funzfunz(pippo);"
    non viene riconosciuto "pippo"

    va messo
    onclick="funzfunz('pippo');"

    ora funzia grazie


    approfitto per un altra domanda. se a quella funzione aggiungo il focus() , mi mette il cursore ovviamente PRIMA della stringa che inserisco (in questo caso @pippo@). come faccio a far mettere il cursore dopo la seconda @ ? grazie

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.