[JS]problema con le funzioni

di il
4 risposte

[JS]problema con le funzioni

Salve a tutti.. ho un problema con la creazione di una funzione in javascript...
il problema si presenta solo se appunto raggruppo un insieme di enunciati in una funzione.
mi spiego meglio: se scrivo direttamente il codice della funzione nell'elemento onclick del tag button il tutto funziona correttamente, se invece lo inserisco in una funzione scritta prima e poi la invoco non funziona più nulla, si comporta come se non avessi dato nessun compito al bottone
scrivo di seguito il tag del bottone e la fuzione che voglio che esegua

tag bottone:

<input type="button" name="invio" value="modifica" onclick="conferma(this)">
funzione:

                    document.getElementById('vecchia');
                    var NPass = document.getElementById('nuova');
                    if(pass.value == '') {
                        alert('errore inserisci la vecchia password');
                    }
                    else if(pass.value == NPass.value){
                        alert('la vecchia password non può essere uguale a quella nuova');
                    }
                    else {
                        submit();
                    }
ricordo a tutti che gli id degli elementi sono giusti.. lo so perche se io non raggruppo tutti i comandi in una funzione ma li scrivo nell'elemento onclick funziona tutto, quindi è molto probabile che sbagli qualcosa nell'invocazione o nella definizione della funzione.

ringrazio tutti in anticipo per le risposte..

4 Risposte

  • Re: [JS]problema con le funzioni

    Scrivi il codice per intero, in quello che hai scritto la variabile pass non è dichiarata.
    Se non scrivi per intero il codice non possiamo aiutarti.
  • Re: [JS]problema con le funzioni

    Chiedo scusa questa è la funzione che ho scritto(completa):
    
    <script language="text/javascript">
                    function conferma(){ 
                        var pass = document.getElementById('vecchia');
                        var NPass = document.getElementById('nuova');
                        if(pass.value == '') {
                            alert('errore inserisci la vecchia password');
                        }
                        else if(pass.value == NPass.value){
                            alert('la vecchia password non può essere uguale a quella nuova');
                        }
                        else {
                            submit();
                        }
                    }
    </script>
    
    questo è il form:
    
     <form id="form" action="elabora_MPU.php" method="post">
            <table>
                <tr>
                    <td colspan="2">
                        <center><b>modifica nome utente e password</b></center>
                    </td>
                </tr>
                <tr>
                    <td>
                        vecchia password
                    </td>
                    <td>
                        <input type="text" name='vecchia' id="vecchia"> 
                    </td>
                </tr>
                <tr>
                    <td>
                        nuova password
                    </td>
                    <td>
                        <input type="password" name="nuova_pass" id="nuova">
                    </td>
                </tr>
                <tr>
                    <td>
                        nuovo nome utente
                    </td>
                    <td>
                        <input type="text" name="nuovo_usr">
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <center>
                            <input type="button" name="invio" value="modifica" onclick="conferma()">
                           <br> 
                        </center>
                    </td>
                </tr>
            </table>
            </form>
    
    se io al posto di richiamare la fuzione come fatto prima la scrivo direttamente così funziona:
    
     <form id="form" action="elabora_MPU.php" method="post">
            <table>
                <tr>
                    <td colspan="2">
                        <center><b>modifica nome utente e password</b></center>
                    </td>
                </tr>
                <tr>
                    <td>
                        vecchia password
                    </td>
                    <td>
                        <input type="text" name='vecchia' id="vecchia"> 
                    </td>
                </tr>
                <tr>
                    <td>
                        nuova password
                    </td>
                    <td>
                        <input type="password" name="nuova_pass" id="nuova">
                    </td>
                </tr>
                <tr>
                    <td>
                        nuovo nome utente
                    </td>
                    <td>
                        <input type="text" name="nuovo_usr">
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <center>
                            <input type="button" name="invio" value="modifica" onclick="
                        var pass = document.getElementById('vecchia');
                        var NPass = document.getElementById('nuova');
                        if(pass.value == '') {
                            alert('errore inserisci la vecchia password');
                        }
                        else if(pass.value == NPass.value){
                            alert('la vecchia password non può essere uguale a quella nuova');
                        }
                        else {
                            submit();
                        }"> <br> 
                        </center>
                    </td>
                </tr>
            </table>
            </form>
    
    non riesco proprio a capirne il motivo..
  • Re: [JS]problema con le funzioni

    Eccolo là l'errore!
    <script language="text/javascript">
    o metti type="text/javascript" o metti language="javascript"

    inoltre, submit lo devi associare al form quindi fai

    document.getElementsByTagName("form")[0].submit();

    anzichè submit();

    se vuoi puoi anche mettere al posto di
    <input type="button" name="invio" value="modifica" onclick="conferma()">
    type="submit"
    <input type="submit" name="invio" value="modifica" onclick="conferma()">
    e attribuisci al tag form onsubmit="return conferma()" e anzi che mettere submit() metti return true e return false nel caso c'è qualche errore.
  • Re: [JS]problema con le funzioni

    Grazie mille!!!
    ora ho risolto il problema
Devi accedere o registrarti per scrivere nel forum
4 risposte