Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Controllo campi form

  1. #1

    Controllo campi form

    io stò cercando di ripulire un campo del modulo solo dopo l'invio con il relativo pulsante.
    Ho questo piccolo form:

    codice:
    function azzeraCampi(art, quant){ 
    document.insArt.articolo.value="";
    document.insArt.qta.value="1";
    document.insArt.qta.focus();
    return true;
    }
    
    
    <form method="post" name="insArt" action="ricevi.asp" onsubmit="azzeraCampi(document.insArt.articolo.value, document.insArt.qta.value);">
    <input name="articolo">
    <input name="qta">
    <input type="submit" value="Invia">
    </form>
    Io vorrei che una volta inviato il form, il campo 'qta' si reimposta con il valore 1 con il cursore mentre per il campo 'articolo' vorrei che si azzeri. Il tutto avviene correttamente, ma solo prima di inviare il form, con il risultato che il campo 'articolo' non invia nulla per il semplice motivo che si cancella prima di inviare il form alla pagina ricevi.asp e così anche per il campo 'qta'.
    Come posso inviare prima i contenuti dei campi e poi far sì che venga eseguita la funzione?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: Controllo campi form

    Originariamente inviato da simone75
    io stò cercando di ripulire un campo del modulo solo dopo l'invio con il relativo pulsante.
    Ho questo piccolo form:

    codice:
    function azzeraCampi(art, quant){ 
    document.insArt.articolo.value="";
    document.insArt.qta.value="1";
    document.insArt.qta.focus();
    return true;
    }
    
    
    <form method="post" name="insArt" action="ricevi.asp" onsubmit="azzeraCampi(document.insArt.articolo.value, document.insArt.qta.value);">
    <input name="articolo">
    <input name="qta">
    <input type="submit" value="Invia">
    </form>
    Io vorrei che una volta inviato il form, il campo 'qta' si reimposta con il valore 1 con il cursore mentre per il campo 'articolo' vorrei che si azzeri. Il tutto avviene correttamente, ma solo prima di inviare il form, con il risultato che il campo 'articolo' non invia nulla per il semplice motivo che si cancella prima di inviare il form alla pagina ricevi.asp e così anche per il campo 'qta'.
    Come posso inviare prima i contenuti dei campi e poi far sì che venga eseguita la funzione?
    Non credo si possa fare in js dal momento che rimandi il browser alla pagina riveci.asp, (la pagina form e gia scaduta) ma nella pagina ricevi.asp elabori i dati e rimandi alla pagina form che avra i campi di default.
    Oppure non ho capito cosa vuoi fare.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Scusa non ho specificato che utilizzo frame, quindi la pagina che invia i campi del modulo rimane sempre lì ed è per questo che vorrei una funzione che ripulisse i campi dopo averli inviati al frame sottostante. Ma credo anche io che non si poss fare in Js.

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Come non detto con frame forse cosi risolvi, nella pagina ricevi.asp metti questa funzione

    codice:
    <head>
    <script>
    function azzeraCampi(){ 
    top.document.insArt.articolo.value="";
    top.document.insArt.qta.value="1";
    top.document.insArt.qta.focus();
    }
    </script>
    </head>
    <body onload="azzeraCampi();">
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Non funziona, forse non mi sono spiegato bene:

    ho due frame, il primo (in alto) è quello che contiene i due campi del modulo. Il secondo (in basso) riceve i campi e che sarebbe la pag ricevi.asp
    Il frame in alto che invia i campi e che dovrei ripulire, non si ricarica, quindi l'evento onload non funziona. Se, come dici tu metto l'evento onload nella pagina che riceve i campi non ha nessun effetto xchè non è qulla la pagina che contiene i due campi da ripulire.

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da simone75
    Non funziona, forse non mi sono spiegato bene:

    ho due frame, il primo (in alto) è quello che contiene i due campi del modulo. Il secondo (in basso) riceve i campi e che sarebbe la pag ricevi.asp
    Il frame in alto che invia i campi e che dovrei ripulire, non si ricarica, quindi l'evento onload non funziona. Se, come dici tu metto l'evento onload nella pagina che riceve i campi non ha nessun effetto xchè non è qulla la pagina che contiene i due campi da ripulire.
    Ma la pagina ricevi.asp si ricarica per salvare i dati, ho sbagliato, io prova cosi:

    top.frames[0].document.insArt.articolo.value="";
    top.frames[0].document.insArt.qta.value="1";
    top.frames[0].document.insArt.qta.focus();

    In sintesi alla pagina ricevi.asp dici modifica i campi del form x del frame y. Il resto non cambia.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    GRANDE cavi funziona!!!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536

    aiuto

    Originariamente inviato da cavicchiandrea
    Ma la pagina ricevi.asp si ricarica per salvare i dati, ho sbagliato, io prova cosi:

    top.frames[0].document.insArt.articolo.value="";
    top.frames[0].document.insArt.qta.value="1";
    top.frames[0].document.insArt.qta.focus();

    In sintesi alla pagina ricevi.asp dici modifica i campi del form x del frame y. Il resto non cambia.

    Ciao cavicchiandrea

    La cosa interessa tantissimo anche a me.
    Ho anche io la pagina divisa in frame a sinistra ho questo:
    Il frame si chiama "articoli"
    codice:
    <html>
    <head>
    <title>Form dati</title>
    
    </head>
    <body bgcolor="#DAB88B" body onload="document.art.codice.focus();">
    <TABLE border=0 width=100% cellpadding=3>
    <tr>
    <td width=100% colspan=2>
    <p align=center>Inserisci Articoli
    <form method=POST action="fatt1.php" target= "fatt1" name = "art">
    </td>
    </tr>
    <tr>
    <td width=18%>Codice</td>
    <td width=82%><input type=text name=codice size=10></td>
    </tr>
    <tr>
    <td width=18%>Descrizione</td>
    <td width=72%><textarea name=descrizione cols="23"></textarea></td>
    </tr>
    <tr>
    <td width=18%>[b]Quantità</td>
    <td width=82%><input type=text name=quantita size=10></td>
    </tr>
    <tr>
    <td width=18%>[b]Prezzo Un.</td>
    <td width=82%><input type=text name=prezzo size=10></td>
    </tr>
    <tr>
    <tr>
    <td width=18%>[b]IVA</td>
    <td width=82%><input type=text name=iva size=10></td>
    </tr>
    <tr>
    <td width=18%><input type=submit value=Inserisci nuovi dati></td>
    <td width=82%><input type="reset" value="reset" name="B2"></td>
    </tr>
    </table>
    </form>
    </body></html>
    La pagina invia i dati come puoi notare ad una pagina in php (fatt1.php), il frame si chiama fatt1
    che si trova nel frame di destra.

    Per l'azzeramento dei campi ho provato a reciclare il codice che hai suggerito sopra e ad inserirlo
    nella pagina in php, ma
    non succede niente (sicuramente dovuto a qualche mio errore).
    Come vedi ho inserito nella pagina del form anche la funzione per posizionare
    il cursore nel primo campo, ma funziona solo la prima volta.
    Puoi aiutarmi, per piacere?
    grazie anticipatamente.

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non è che si capisca molto dalla pagina posta, in oltre la mancanza delle doppie virgole ["] nei campi del form non è semanticamente corretto in oltre potrebbe mal funzionare con i nuovi browser.
    Premesso questo esempio da me postato deve essere inserito nella pagina dove salvi i dati nel tuo caso nella pagina (fatt1.php)
    codice:
    top.frames[0].document.art.codice.value="";
    top.frames[0].document.art.codice.focus();//cosi torna il focus sul campo codice.
    top.frames[0].document.art.descrizione.value="";
    top.frames[0].document.art.quntita.value="";
    etc.....
    prova anche cosi:
    codice:
    top.frame['articoli'].document.art.codice.value="";
    top.frame['articoli'].document.art.codice.focus();//cosi torna il focus sul campo codice.
    top.frame['articoli'].document.art.descrizione.value="";
    top.frame['articoli'].document.art.quntita.value="";
    etc.....
    In caso di problemi metti la pagina (frame) completa on-line.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    grazie per la disponibilità

    Provo e ti faccio sapere.

    Il codice del frame in html sopra è completo.
    parli della pagina php a cui invio i dati?
    grazie ancora

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.