Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Funzione con parametro

  1. #1

    Funzione con parametro

    Ho questa funzione per controllare la validità di un indirizzo e-mail:

    function checkmail() {
    if (document.getElementById("newsletter").email.value .search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1){
    return true;
    } else {
    alert("ATTENZIONE! L\'indirizzo E-Mail inserito non è valido.");
    return false;
    }
    }

    Adesso io vorrei chiamare la funzione con un parametro che rappresenta l'Id dell'elemento.
    In pratica una cosa di questo tipo:

    Faccio la chiamata così:

    checkmail(newsletter);

    E vorrei una funzione così:

    function checkmail(parametro) {
    if (document.getElementById(parametro).email.value.se arch(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1){
    return true;
    } else {
    alert("ATTENZIONE! L\'indirizzo E-Mail inserito non è valido.");
    return false;
    }
    }

    Qual è la sintassi esatta per ottenere questo risultato?

    Grazie Fabio
    Il mondo è diviso in 10 gruppi di persone... chi capisce il binario e chi no!

    http://www.pratesi.net

  2. #2
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    codice:
    function controllo_email(email)
    {
        if (!(email.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/)))
        {
    	alert("\n Hai inserito una email in un formato non valido.");
    	return false;
        }
    }

    la funzione la richiami cosi sull'evento che vuoi, per esempio sul submit

    codice:
    onsubmit= "return controllo_email(document.getElementById('email').value);"
    cosi dovrebbe andare.

    PS: usa il tag CODE quando inserisci il codice, altrimenti è illegibile.
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  3. #3
    Originariamente inviato da blekm
    codice:
    function controllo_email(email)
    {
        if (!(email.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/)))
        {
    	alert("\n Hai inserito una email in un formato non valido.");
    	return false;
        }
    }

    la funzione la richiami cosi sull'evento che vuoi, per esempio sul submit

    codice:
    onsubmit= "return controllo_email(document.getElementById('email').value);"
    cosi dovrebbe andare.

    PS: usa il tag CODE quando inserisci il codice, altrimenti è illegibile.
    Ok... andiamo per ordine:

    1. Il codice da te fornito presuppone che id="email" sia applicato al tag <input /> dove viene inserito l'indirizzo e-mail e non al tag <form> come invece facevo io, giusto?

    2. A parte la RegEx diversa, che differenza c'è tra search e match?

    3. Nella funzione controllo_email(email) va bene anche senza inserire il ramo "else" con return true; ?

    Grazie e scusate per l'omissione del tag CODE.
    Il mondo è diviso in 10 gruppi di persone... chi capisce il binario e chi no!

    http://www.pratesi.net

  4. #4
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da Felixfree
    1. Il codice da te fornito presuppone che id="email" sia applicato al tag <input /> dove viene inserito l'indirizzo e-mail e non al tag <form> come invece facevo io, giusto?
    Giusto, al tag Input.
    codice:
    <input type="text" name="email" id="email"/>
    Originariamente inviato da Felixfree
    2. A parte la RegEx diversa, che differenza c'è tra search e match?
    boh

    Originariamente inviato da Felixfree
    3. Nella funzione controllo_email(email) va bene anche senza inserire il ramo "else" con return true;?
    si. Perchè io controllo che se la funzione .match restitiusce false (con !). In caso contrario, non succede niente. Quindi un ramo else non serve.
    Provare per credere.
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  5. #5
    Originariamente inviato da blekm
    si. Perchè io controllo che se la funzione .match restitiusce false (con !). In caso contrario, non succede niente. Quindi un ramo else non serve.
    Provare per credere.
    Bene... avevo notato il not davanti all'espressione... chiedevo ciò solo perchè la funzione in questione la richiamo all'interno di un'altra funzione di controllo JS che a sua volta è chiamata al tentativo di invio del form e necessito di sapere esattamente se risponde vero o falso... comunque così funziona e in questo modo ho raggiunto il mio scopo, ovvero svincolare la funzione di controllo di validità dell'indirizzo e-mail dall'ID del form.

    Mille Grazie
    Il mondo è diviso in 10 gruppi di persone... chi capisce il binario e chi no!

    http://www.pratesi.net

  6. #6
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da Felixfree
    Mille Grazie
    prego
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

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.