- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- checkbox obbligatorio in un form
-
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!
-
Ti sposto nella sezione asp asp.net li troverai sicuramente persone piu' preparate di me per questo problemino
-
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....
-
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">
-
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.
-
<!--
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?
-
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.
-
funziona perfettamente!!
grazie tante!!
-
unica cosa....
ora nella mail che viene generata da formcdosys.asp non risulta piu' il valore del checkbox "privacy"........
mmmm....
-
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.