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

    Problema strano con eventi

    Cerco di spiegarmi meglio:
    ho una funzione javascript, diciamo MiaFunzione() che dovrebbe partire con l'evento onsubmit() del bottone di un form.

    Purtroppo la finzione JS la faccio io, ed ho anche un certo controllo sulla pagina, ma il form in questione potrebbe essere fatto da chiunque, e non posso essere sicuro che chi fa il form metta onsubmit="MiaFunzione()"

    E vero che potrei allegare un readme.txt con scritto "se non metti onsubmit="MiaFunzione()", sei un pirla, ma non è sicuro che risolva il problema

    quindi chiedo: c'è qualche altro evento che al click sul bottone submit si scateni sicuramente ed al quale potrei legare la mia funzione? Che so, bodyunload(), buttonclick() (sono inventati) o qualcosa di simile...

    grazie.

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>Pagina senza titolo</title>
    
        <script language="javascript" type="text/javascript">
    // <!CDATA[
    
    window.onload = function()
    {
        document.forms[0].onsubmit = function()
        {
            alert("questa funziona sovrascrive l'altra");
        }
    
    }
    
    
    // ]]>
        </script>
    </head>
    <body>
    <form onsubmit="alert('mia funzione tutta sbagliata o inesistente');">
        <input id="Submit1" type="submit" value="submit" />
    </form>
    </body>
    </html>
    Pietro

  3. #3
    Ti ringrazio del suggerimento, ma non riesco a farla funzionare.

    Diciamo che il mio form originale presenta questa situazione:

    <form action="pippo.php" method="post" onsubmit="validate()">

    Per non perdere ciò che è gia scritto nell'onsubmit, ho modificato la tua funzione così:


    window.onload = function ()
    {
    submit=document.forms[0].onsubmit;
    document.forms[0].onsubmit = function ()
    {
    submit='RecuperaTesto(); ' + submit;
    alert(submit);
    }

    }


    l'alert l'ho lasciato per controllo e mi da:


    RecuperaTesto(); function anonymous() { validate() }


    nè una nè l'altra funzione vengono eseguite.
    dov'è che sbaglio?

    edit: hmmm aggiungendo return submit; sembra funzionare. Grazie!

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    io ti ho dato un consiglio, se lo stravolgi io non posso parte

    allora, nel form non posso sapere niente, perchè non la faccio io ma uno qualunque. Perciò l'evento submit me lo scrio io:


    window.onload = function()
    {
    document.forms[0].onsubmit = validate;
    }
    function validate()
    {

    }
    Pietro

  5. #5
    Originariamente inviato da pietro09
    io ti ho dato un consiglio, se lo stravolgi io non posso parte

    allora, nel form non posso sapere niente, perchè non la faccio io ma uno qualunque. Perciò l'evento submit me lo scrio io:


    window.onload = function()
    {
    document.forms[0].onsubmit = validate;
    }
    function validate()
    {

    }
    Mi ero spiegato male:
    parte del submit lo scrivo io, parte potrebbe essere già scritto da altri.
    Comunque aggiungendo il return sembra che funzioni.

    Grazie ancora.

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    allora avevo capito male io

    non ho ancora sperimentato, ci vuole un po' di tempo
    Pietro

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.