• User Attivo

    checkbox obbligatorio in un form

    scusate la probabile banalita' della domanda....

    in un form ho messo come obbligatorio il campo di testo
    email.
    Ora vorrei rendere obbligatorio anche la spunta di un checkbox
    ma quando seleziono il form e in comportamenti apro le proprieta' di onSubmit
    non trovo il checkbox disponibile tra le opzioni, ci sono solo i campi di testo....

    come si fa'?:?
    thnxxx


  • User Attivo

    beh.. fai la cosa piu' semplice.. agisci sul codice.. guarda i parametri che ha dato hai campi di testo e li dai anche per il checkbox 😉


  • User Attivo

    infatti ci avevo provato, ma i miei limiti in materia mi hanno bloccato!

    allora...in corrispondenza del campo di testo per l'email risulta semplicemente:

    <input type="text" name="email" size="20">

    pero' all'inizio del form viene dichiarato questo:

    <form action="formcdosys.asp" method="post" name="form1" onSubmit="MM_validateForm('cap_zip','','NisNum','email','','RisEmail');return document.MM_returnValue">

    quindi....per validare il form cap_zip dev'essere un numero...
    e email dev'essee un email!!....

    purtroppo non mi aiuta molto!!!:?:?

    forse a te si' pero'..... 😉
    thnxx!


  • User Attivo

    Ti sposto nella sezione asp asp.net li troverai sicuramente persone piu' preparate di me per questo problemino 😉


  • User Attivo

    Con quale tool stai costruendo questa form? Poi mi serve anche l'html della form e la funzione "MM_validateForm" che suppongo venga creata automaticamente....


  • User Attivo

    ho preso il template di aruba e ho aggiunto i campi che mi servono in dreamweaver

    <form action="formcdosys.asp" method="post" name="form1" onSubmit="MM_validateForm('cap_zip','','NisNum','email','','RisEmail');return document.MM_returnValue">
    

    il checkbox in questione e' questo:

    <input name="privacy" type="checkbox" id="privacy" value="acconsente">


  • User Attivo

    Ok, se mi dai anche la funzione javascript MM_validateForm ti scrivo la riga di codice che devi aggiungerci per fare il controllo sulla checkbox.


  • User Attivo

    <!--
    function MM_findObj(n, d) { //v4.01
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d)&&d.all) x=d.all; for (i=0;!x&&i<d.forms.length;i++) x=d.forms*;
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers*.document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }

    function MM_validateForm() { //v4.0
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args*);
    if (val) { nm=val.name; if ((val=val.value)!="") {
    if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
    if (p<1 || p==(val.length-1)) errors+='- '+nm+' deve essere valida.\n';
    } else if (test!='R') { num = parseFloat(val);
    if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
    if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
    min=test.substring(8,p); max=test.substring(p+1);
    if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' necessaria.\n'; }
    } if (errors) alert('Inserire email valida:\n'+errors);
    document.MM_returnValue = (errors == '');
    }

    questo?


  • User Attivo

    Allora, perfetto. Devi aggiungere questa riga di codice nella parte finale della funzione (ti ricopio parte della funzione per farti capire)

    Il codice da aggiungere è il seguente

    
    val = MM_findObj('chkControllo'); if(!(val.checked)) { errors += ' - Devi mettere la spunta'; } 
    
    

    Dove al posto di chkControllo ci devi mettere l'ID della tua checkbox (se non lo ha metticelo).

    Questo codice lo devi inserire verso la fine di quello che mi hai mandato, precisamente qui:

    
    } if (errors) alert('Inserire email valida:\n'+errors);
    
    

    Tra la parentesi graffa e "if (errors)"

    Il risultato deve essere:

    
    } val = MM_findObj('chkControllo'); if(!(val.checked)) { errors += ' - Devi mettere la spunta'; }
     if (errors) alert('Inserire email valida:\n'+errors);
    
    

    Mi raccomando non scordarti la parentesi graffa. Fai un pò di test e facci sapere.


  • User Attivo

    funziona perfettamente!!
    grazie tante!!
    😄


  • User Attivo

    unica cosa....
    ora nella mail che viene generata da formcdosys.asp non risulta piu' il valore del checkbox "privacy"........
    mmmm....


  • User Attivo

    Sei sicuro che prima comparisse? perché la funzione che ti ho dato non altera nulla del html, è solo un controllo che stampa un alert, e non dovrebbe toccare nulla della struttura precedente... nel caso prima funzionava postami la parte di formcdosys.asp che prende il valore privacy.