Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253

    Richiamare Javascript nel parent da IFRAME

    Ciao a tutti, mi si presenta il seguente problema:

    ho una form con due tabelle di due righe ciascuna che contengono rispettivamente all'interno due combobox, CMB_A e CMB_B, e due iframe da esse richiamati, chiamati IFRAME_A e IFRAME_B.

    Non ho problemi a caricare la location degli iframe all'onchange sulle combo, nè a visualizzarne il contenuto, fatto di un misto dinamico ASP e statico HTML.
    Dentro ciascun iframe vengono visualizzati un numero variabile di checkbox correttamente processati da un javascript che ne memorizza l'ID e un numero variabile di combobox sul quale avrei bisogno di fare la stessa cosa, e qui nasce il problema.

    All'interno di ciascun iframe, tento di fare all'onchange sulle combobox un richiamo ad una funzione che sta nel parent passando due parametri. La visualizzazione dei paramentri non da problemi, ma non appena tento di memorizzarmi il valore della combo con l'istruzione
    document.frames['IFRAME_A'].all[nomecombo].selectedIndex mi va in errore affermando che document.frames['IFRAME_A'].all[nomecombo].selectedIndex è nullo o non è un oggetto!
    Ovviamente lo stesso accade per document.frames['IFRAME_A'].getElementByID(IDcombo).selectedIndex...

    Vi prego aiutatemi...

    PS: se è necessario posso postare il codice

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    codice:
    document.frames['IFRAME_A'].all[nomecombo].selectedIndex
    ti sconsiglio di usare .all in quanto non è standard e viene utilizzato solo da IE.

    se puoi assegna un ID unico al combo e fai riferimento con

    document.getElementById('il tuo id')

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    come ho già scritto alla fine del mio post, in entrambi i casi non funziona...per evitare il problema del .all, dato che ho alcuni tag che iniziano senza id per poi assumerne uno variabile, posso utilizzare getElementByName giusto?

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    Per semplificare posta il link alla pagina cosi:

    -A) verifichiamo esattamente l'errore
    -B) si salva la pagina in locale x eseguire modifiche, senza dover ricreare tutto.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    codice:
    function setstatusvalues(IDPlayer,TeamID)
    {
       if (document.frames['IFRAME_A'].getElementById('CMB_PL+IDPlayer').selectedIndex!=0)
      {
         var PlayerStatusString = document.frames['IFRAME_A'].getElementById'CMB_PL'+IDPlayer).selectedIndex;
      }
      if (PlayerStatusString != "")
      {
         document.getElementByID['PlayerStatusA_Team'+TeamID].value = PlayerStatusString;
      }
    }
    Ecco il codice, in pratica sulla generica ComboBox getElementById 'CMB_PL'+IDPlayer presente nell'Iframe A non faccio altro che selezionare un valore e all'onchange richiamare questa funzione con il comando parent.setstatusvalues(IDPlayer,TeamID) dato che la funzione è dichiarata nella pagina principale.
    Mi dice sempre che document.frames['IFRAME_A'].getElementById('CMB_PL+IDPlayer').selectedIndex è nullo o non è un oggetto, ma mi basta attivare qualche alert qui dentro per verificare che invece il valore viene passato correttamente..
    Aiuto!!!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    purtroppo mi è impossibile postare il link in quanto ancora si trova tutto su rete locale e poi si tratta di una parte del sito non accessibile pubblicamente, ma con user e password

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    Cosi top.setstatusvalues(IDPlayer,TeamID) hai provato?
    E' un erore di percoso, provale tutte, nelle discussioni utili dovrebbe esserci una discussione che tratta i frame e frameset.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    proverò, tanto non mi costa niente farlo... Ma ho 1 altra funzione che mi serve x valorizzare e pulire altri campi hidden che viene sempre richiamata via parent.NOMEFUNZIONE e non dà alcun problema!

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    ho risolto!!!

    Non era
    document.frames['IFRAME_A'].getElementById('CMB_PL+IDPlayer').selectedIndex

    ma

    document.frames['IFRAME_A'].document.getElementById('CMB_PL+IDPlayer').select edIndex



    1 altra domandina? è possibile associare ad 1 determinato evento nel form, nel caso specifico click su una checkbox oppure change su una combo, la riduzione degli indici di questa Combo??

    Mi spiego: in pratica al momento della sua comparsa questa combo ha come indice 0 un testo che invita l'utente ad utilizzarla per una data operazione e, dato che deve necessariamente essere valorizzata, posso fare in modo che al primo change su di essa l'index 0 scompaia?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.