Visualizzazione risultati 1 fino 7 di 7

Discussione: [JAVASCRIPT] modulo invia e chiudi

  1. #1
    Guest

    Predefinito [JAVASCRIPT] modulo invia e chiudi

    semplifico a bomba:

    ho un modulo chiamato modulo, con un campo text, chiamato campo, il cui valore deve essere impostato da una finestrella aperta apposta da un bottone, quindi

    Codice:
    <form method="post" action="azione.htm" name="modulo">
    <input type="text" name="campo"><input type="button" value="apri" onclick="window.open('test2.htm', '','width=300,height=100');"">
    </form>
    e questo è test2.htm,
    Codice:
    <script language="JavaScript">
    function azione() {
    parent.modulo.campo.value=document.modulo2.campo2.value;
    self.close();
    }
    </script>
    
    <form name="modulo2" action="#">
    <select name="campo2">
    <option value="1">1
    <option value="2">2
    </select>
    <input type="button" value=">" onclick="azione();">
    </form>
    vorrei che, premendo il pulsante il campo "campo" del modulo della pagina iniziale assuma il valore di "campo2" della finestrella aperta, e poi la finestra si chiuda, il mio problema è ke nn fa nè uno nè l'altro, e quindi:
    qualche anima pia sarebbe in grado di darmi una zampa?

    grazie in anticipo, ciauz!

  2. #2
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Visto che la finestra che apre il popup non è proprio un "genitore" ma un "apritore", sostituirei al "parent" un bel "opener", che corrisponde al riferimento della finestra che ha aperto (window.open) il popup, e visto che un modulo (form) ha come genitore ulteriore l'oggetto document, indicare opener.document .
    parent invece viene usato quando ci si trova in un FRAMESET, dove un documento essendo frameset è padre (parent) di frames figli.

    Quindi sostituire la riga con:
    opener.document.modulo.campo.value = document.modulo2.campo2.value;


    Edit:
    non ricordo con esattezza se per un campo di tipo SELECT (come è campo2) sia accettato da tutti i browser il semplice attributo .value
    Per sicurezza farei così (per prendere il valore dell'OPZIONE selezionata):
    Codice HTML:
    var selc2 = document.modulo2.campo2;
    opener.document.modulo.campo.value = selc2.options[selc2.selectedIndex].value;
    Ultima modifica di heracleum : 05-12-2005 alle ore 16.12.39
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  3. #3
    Guest

    Predefinito

    grazie heracleum, sarà ke sn di fretta perkè devo andare a scuola però nn riesco a farlo andare sgrunt
    vabbè, riprovo quando torno ;)
    ciauz

  4. #4
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Non capisco perché non ti funga... è vero che prima ti ho dato un codice scritto al volo, che non avevo testato.
    Ma ora ho buttato giù al volo le due paginette, e mi funziona alla grande (con la mia modifica sopracitata).
    Sia con Mozilla firefox sia con IE... quindi riprova per benino
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  5. #5
    Guest

    Predefinito

    mea culpa, il tuo funziona perfettamente, grazie heracleum!
    ora provo nella MIA pagina con i dati ke mi servono lol
    ancora grazie, ciauz!

    EDIT:

    sob -.-
    l'ho uppato, provato, niente, mi dice ke opener.document non è un oggetto riconosciuto o robaccia simile, questo me l'ha detto quella schifezza di ie quindi non mi fido molto, ma manco con ff funge quindi sarà così...
    continuerò a sbattere la testa, magari ho cannato una virgola come capita sempre

    ri-ciauz!
    Ultima modifica di SFo : 05-12-2005 alle ore 18.35.47

  6. #6
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    non è possibile..
    se "opener.document" non va a buon fine l'unica possibilità è che venga usato quando NON ci si trova in una finestrella aperta con window.open.

    Ma visto che immagino che il tuo codice non sia proprio quello sopracitato (o sì) facciamo prima se indichi l'url della tua pagina online con questo codice e risolviamo subito.. altrimenti la cosa può risultare faticosa..
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  7. #7
    Guest

    Predefinito

    ho risolto!
    e sai come? togliendo la variabile (magari avevo sbagliato scrivendo, ma ho fatto copia incolla quindi non penso) e inserendo il nome completo dove serviva!

    grazie cmq heracleum, e cmq è un'area protetta di un sito, tra l'altro nn facilmente raggiungibile se nn a manina visto ke ci sto lavorando su ;)

    ancora grazie della disponibilità e della zampa, ciauz!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •