Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [js] Validare un form

  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [js] Validare un form

    Salve, vorrei fare in modo che sia selezionato almeno un prodotto del form, e qualora non ne sia stato selezionato nemmeno uno deve apparire un messaggio di errore...
    Ho scritto questo, ma oltre a non funzionare correttamente non riesco a dirgli di non inviare i dati...
    (ossia la popup appare ma va lo stesso alla pagina successiva).
    Codice PHP:
    <!--
    function 
    validate() {

        var 
    item_1 document.form_acquisti.item_1.value;
        var 
    item_2 document.form_acquisti.item_2.value;
        var 
    item_3 document.form_acquisti.item_3.value;
        var 
    item_4 document.form_acquisti.item_4.value;
        var 
    item_5 document.form_acquisti.item_5.value;
        var 
    item_6 document.form_acquisti.item_6.value;
        var 
    item_7 document.form_acquisti.item_7.value;

        if (
    typeof item_1 != 'number'item_1=0;
        if (
    typeof item_2 != 'number'item_2=0;
        if (
    typeof item_3 != 'number'item_3=0;
        if (
    typeof item_4 != 'number'item_4=0;
        if (
    typeof item_5 != 'number'item_5=0;
        if (
    typeof item_6 != 'number'item_6=0;
        if (
    typeof item_7 != 'number'item_7=0;
        var 
    sum    = (item_1+item_2+item_3+item_4+item_5+item_6+item_7);
        var 
    email  document.form_acquisti.fieldEm.value;

        if ((
    sum <= 0) || (sum == "") || (sum == "undefined")) {
            
    alert("Nessun prodotto selezionato!");
            
    document.form_acquisti.item_1.focus();
            return 
    false;
        } else if ((
    email.indexOf("@") == (-1)) || (email == "") || (email == "undefined")) {
            
    alert("Inserire un indirizzo email valido.");
            
    document.form_acquisti.fieldEm.focus();
            return 
    false;
        }

        var 
    pagam document.form_acquisti.elements['pag[]'];
        var 
    0;
        for (var 
    i=0i<pagam.lengthi++) {
            if(
    pagam[i].checkedr++; // conta il numero di checkbox settate
        
    }
        if(
    == 0) {
            
    alert'Devi scegliere almeno una' ) ;
            return 
    false;
        }
        
    }
    //--> 
    Il bottone invia l'ho settato così:

    <input name="submit" type="submit" value="Invia" onClick="validate()">

    p.s. lo script di email invece non funzia proprio =_='
    わさび

  2. #2
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    Re: [js] Validare un form

    Ho risolto i problemi di scripting controllando l'articolo qui http://pro.html.it/articoli/id_279/i...pag_5/pag.html però non so perchè ma anche in caso di errore l'altert compare e poi va comunque alla pagina successiva...
    わさび

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Un frequentatore del forum come te, dovrebbe ormai saperlo:
    onClick="return validate();"
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da Mich_
    Un frequentatore del forum come te, dovrebbe ormai saperlo:
    onClick="return validate();"
    La mia specialità non è il Javascript, anche se mi ritengo un discreto programmatore di Flash ...
    comunque se mi conoscessi sapresti che sono anche uno specialista nel fare mission impossible e contemporaneamente nel perdermi in un bicchiere d'acqua =_='

    Grazie per l'aiuto
    わさび

  5. #5
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    un'utlima cosa: per quanto riguarda il numero dei prodotti ancora non mi funziona:
    Codice PHP:
        var item_1 document.form_acquisti.item_1.value;
        var 
    item_2 document.form_acquisti.item_2.value;
        var 
    item_3 document.form_acquisti.item_3.value;
    [...]
        if (
    typeof item_1 != 'number'item_1=0;
        if (
    typeof item_2 != 'number'item_2=0;
        if (
    typeof item_3 != 'number'item_3=0;
    [...]
        var 
    sum    = (item_1+item_2+item_3+item_4+item_5+item_6+item_7);
    [...]
        } else if ((
    sum <= 0) || (sum == "") || (sum == "undefined")) {
            
    alert("Nessun prodotto selezionato!");
            
    document.form_acquisti.item_1.focus();
            return 
    false;
        } 
    dovrebbe uscire fuori l'errore anche se in uno dei campi metto una lettera e invece da sempre errore
    わさび

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Che sintassi e` questa?

    if (typeof item_1 != 'number') item_1=0;

    Forse volevi scrivere:
    if (typeof(item_1) != 'number') item_1=0;
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da Mich_
    Che sintassi e` questa?

    if (typeof item_1 != 'number') item_1=0;

    Forse volevi scrivere:
    if (typeof(item_1) != 'number') item_1=0;
    Hai ragione =_=' ma non funziona lo stesso...
    Ho messo un alert (sum) e mi da sempre 0 anche quando metto 1 nei prodotti.

    p.s. avevo provato anche così ma con lo stesso risultato
    item_1 = ((typeof item_1) == 'number') ? item_1 : 0;
    わさび

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    In effetti fai la concatenazione delle stringhe contenute nei vari campi, non la somma matematica.

    Prova cosi`:
    var item_1 = parseFloat(document.form_acquisti.item_1.value);
    ...
    (tutta la sequenza dei typeOf(item...) non serve piu`)
    ...
    var sum = item_1+item_2+item_3+item_4+item_5+item_6+item_7;
    alert(sum);
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da Mich_
    In effetti fai la concatenazione delle stringhe contenute nei vari campi, non la somma matematica.

    Prova cosi`:
    var item_1 = parseFloat(document.form_acquisti.item_1.value);
    ...
    (tutta la sequenza dei typeOf(item...) non serve piu`)
    ...
    var sum = item_1+item_2+item_3+item_4+item_5+item_6+item_7;
    alert(sum);
    Perfect!
    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.