Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    Registrare commento in form a checkbox

    Ciao a tutti, Vi espongo il problema e spero che qualcuno possa suggerirmi la soluzione più appropriata.

    Ho realizzato un semplice form a compilazione di checkbox corrispondenti ad un questionario.

    Adesso dovrei fare in modo che quando si invia il form tramite il pulsante SUBMIT si visualizzi una finestra Confirm, con una domanda del tipo: "Si desidera registrate un commento al questionario?"

    Se si clicca su "Annulla" dovrebbe partire regolarmente il form, se si clicca su OK dovrebbe aprirsi una popup nel quale registrare il commento.

    Alla conferma della popup, il commento registrato dovrebbe essere inserito in un campo nascosto della pagina principale che contiene il form a compilazione di checkbox, la popup chiudersi e si dovrebbe inviare il form stesso alla pagina lato server che ne acquisisce i dati.

    Premetto che nel form a compilazione di checkbox corrispondenti al questionario non possono essere previsti e non posso inserire campi diversi da checkbox e dal pulsante SUBMIT.

    Spero di essermi spiegato.
    Grazie mille.
    WW

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Restituisci false se l'utente conferma e true se non vuole il commento...
    al ritorno dalla popup semplicemente invoca il metodo submit() del form se il commento e' stato inserito.

    <form ... onsubmit="if(confirm('Vuoi inserire un commento?'){window.open('paginacommento.xxx',...); return false}else{return true}">
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da br1
    Restituisci false se l'utente conferma e true se non vuole il commento...
    al ritorno dalla popup semplicemente invoca il metodo submit() del form se il commento e' stato inserito.

    <form ... onsubmit="if(confirm('Vuoi inserire un commento?'){window.open('paginacommento.xxx',...); return false}else{return true}">
    Grazie per aver risposto in maniera così chiara.
    Questo è il codice della pagina del form con i checkbox.

    Problema:
    1) Una volta inserito il commento come lo gestisco per passarlo alla pagina che lo deve processare lato server?

    codice:
    <script language="javascript" type="text/javascript">
    // <!CDATA[
    
    function atLeastOneChecked(form) {
    
       var inputs = form.getElementsByTagName('input');
       var i = inputs.length;
       while (i--) {
            
          if (inputs[i].checked && !inputs[i].disabled) if(confirm("Vuoi inserire un commento?"))
                                                        {window.open('paginacommento.asp');
                                                          return false}else{return true}
          
    
       }
       
       alert("ko!")
       return false;
    
    }
    
    // ]]>
    </script>
    ...
    
    <form name=Test action="pagLatoServer.asp" method=POST 
    onsubmit="return atLeastOneChecked(this)">
    
    ...
    
    </form>

  4. #4
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Ci sono quasi...

    Vorrei però evitare che, quando il commento salvato dalla pagina figlia, aperta in popup, nel campo nascosto della pagina madre è già stato inserito, venga riproposta la finestra Confirm con la domanda al momento del submit del form...

    Pagina madre:
    codice:
    function PopUp() {
       var w = 400;
       var h = 400;
       var l = Math.floor((screen.width-w)/2);
       var t = Math.floor((screen.height-h)/2);
    
       finestra=window.open('paginacommento.asp','','width=' + w + ',height='+ h + ',top=' + t + ',left=' + l+',scrollbars=no,menubar=no,toolbar=no,status=no');
    }
    
    function atLeastOneChecked(form) {
       var inputs = form.getElementsByTagName('input');
       var i = inputs.length;
       while (i--) {
          
          if (inputs[i].checked && !inputs[i].disabled) 
          
             if(confirm("Vuoi inserire un commento?"))                                                    
                {
                   PopUp();
                   return false
                }
                   else
                      {
                         return true
                       }
          
    
       }
       
       alert("ko!")
       return false;
    
    }
    
    ...
    
    <form name=Test action="pagLatoServer.asp" method=POST onsubmit="return atLeastOneChecked(this)">
    
    ...
    
    <input type=HIDDEN name=commento value=x>
    
    </form>
    Pagina figlia:
    codice:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nuova pagina 1</title>
    
    <script language="javascript" type="text/javascript">
    <!--
    
    function insertf1(f1) {
       
            window.opener.document.Test.commento.value=f1;
            alert("Commento correttamente salvato.");
            window.close();
            
            return f1.substr();
       
    }
    
    //-->
    </script>
    
    </head>
    
    <body>
    
    <form name="formPopup">
    	
    
    <textarea rows="10" name="S1" cols="40"></textarea></p>
    	
    
    <a href="javascript:insertf1(document.formPopup.S1.value);">
        [img]salva.png[/img]</a></p>
    </form>
    
    </body>
    </html>

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Dalla pagina che elabora la popup devi farti restituire un semplice script che invia il form della pagina madre e poi chiude la popup stessa:

    <script>
    window.opener.document.Test.submit();
    setTimeout("self.close()",300);
    </script>
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da br1
    Dalla pagina che elabora la popup devi farti restituire un semplice script che invia il form della pagina madre e poi chiude la popup stessa:

    <script>
    window.opener.document.Test.submit();
    setTimeout("self.close()",300);
    </script>
    Grazie mitico Br1 !!!!!

    codice:
    function insertf1(f1) {
       
            window.opener.document.Test.commento.value=f1;
            alert("Commento correttamente salvato.");
                           
            window.opener.document.Test.submit();
            setTimeout("self.close()",300);  
       
    }

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Scusa, prima mi son confuso: pensavo che inviassi il form della popup

    Cambia:

    return f1.substr(); // ma a che serve???

    in:

    return false;
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da br1
    Scusa, prima mi son confuso: pensavo che inviassi il form della popup

    Cambia:

    return f1.substr(); // ma a che serve???

    in:

    return false;
    Come faremmo senza di te???
    Mille 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.