Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Problemi JS

    Salve ragazzi,

    ho 2 problemi con JavaScript potete aiutarmi?

    Primo, vorrei che un textfield di un form, una volta inviato il contenuto, si svuoti, come faccio?
    Ecco il codice del form:

    codice:
    <form name="input" method="post" action="inputeng1.php" target="sendinput"> 
      <input name="messaggio" type="text" lang="it" value="" size="50" maxlength="2000">
      <input name="inviato" type="hidden" value="inviato">
      <input type="submit" name="submitmsg" title="Invia" value="Invia"/>
    </form>

    Secondo, posso chiamare una pagina con un JS quando l'utente clicca sulla X del Browser per chiuderla? Se si, come faccio?


    Ringrazio tutti anticipatamente

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    709
    Per cancellare il contenuto della textbox al submit della form:
    codice:
    <form name="input" method="post" action="inputeng1.php" target="sendinput" onsubmit="this.elements['messaggio'].value = '';"> 
      <input name="messaggio" type="text" lang="it" value="" size="50" maxlength="2000">
      <input name="inviato" type="hidden" value="inviato">
      <input type="submit" name="submitmsg" title="Invia" value="Invia"/>
    </form>
    Per caricare una pagina alla chiusura della finestra, non credo che javascript (o un qualsiasi altro script lato server) sia sufficiente.

    Secan

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Attenzione, secan, che il codice nell'evento onsubmit viene processato PRIMA di inviare il form, per cui il tuo script invierebbe il campo gia` vuoto.

    Il codice va pertanto modificato:
    onsubmit="setTimeout('this.NOMECAMPO.value=\"\"', 500);"

    Per far partire un JS alla chiusura della pagina:
    <body onunload="window.open('nuovapag.htm');">
    nella pagina "nuovapagina.htm" si puo` inserire un JS.

    Nota: la pagina si apre ogni volta che la pagina viene tolta, quindi anche se si segue un link, per cui nel JS di controllo occorre poi definire cosa e` successo e prendere strade diverse.

    Conuna ricerca nel forum dovresti trovare qualche indicazione in piu`.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Grazie Mich e secan.

    Mich, ho preso il tuo di codice, ma non funzica.

    Te lo posto qui, modificato:

    codice:
    <form name="input" method="post" action="inputeng.php" target="sendinput" onsubmit="setTimeout('this.messaggio.value=\"\"', 500);"> 
      <input name="messaggio" type="text" lang="it" value="" size="50" maxlength="2000">
      <input name="test" type="hidden" value="ok">
      <input type="submit" name="submitmsg" title="Invia" value="Invia"/>
      </form>
    Mi dà l'errore, Costante String senza terminazione.

    Cos'è che non va??

    Grazie ancora

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Hai ragione, dentro il setTimeouut il this non e` definito:

    <form name="inputform" onsubmit="setTimeout('document.inputform.messaggio .value=\"\"', 500);">

    Cosi` dovrebbe essere a posto.
    Nota che ho cambiato il nome al form, dato che "input" e` parola riservata.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Grazie Mich, sei stato gentilissimo.
    Inizialmente non andava, ma poi ho cambiato i due apici "" in '' ed ora va perfettamente.

    Non ho idea di cosa cambi, perché pensavo fosse la stessa cosa, ma con quelli va e con gli altri no.

    Grazie ancora.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Innestare gli apici quando i livelli sono piu` di due puo` essere complicato.

    Per curiosita` (e cultura personale), quali virgolette hai trasformato in apici?
    Con che browser stai testando?
    Lo script e` incluso in una pag PHP o ASP?
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Ho cambiato i due apici con l'escape:

    codice:
    <form name="inputform" method="post" action="inputeng.php" target="sendinput" onsubmit="setTimeout('document.inputform.messaggio.value=\'\'', 500);">
      <input name="messaggio" type="text" lang="it" value="" size="50" maxlength="2000">
      <input name="test" type="hidden" value="ok">
      <input type="submit" name="submitmsg" title="Invia" value="Invia"/>
      </form>
    Testato e funzionante con MSIE6 e NN7.1.

    Lo script è incluso in una semplicissima pagina htm, che va a richiamare (come puoi vedere) una pagina php come action.

    Grazie ancora, sei stato grande

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Io preferisco che apici e virgolette vengano alternati, per cui nella mia proposta le virgolette piu` interne erano ambedue precedute da backslash (come nel tuo gli apici corrispondenti).
    Nel mio browser io le vedo, ma forse nel tuo vengono tagliate. (per vederle devi premere il bottone "quote" del mio post).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.