Bonjour,
tout nouveau sur le site, je cherche à comprendre comment modifier le script de mon formulaire pour faire fonctionner un champ caché qui, si rempli, indique la présence d'un robot spammeur, permettant ainsi d'annuler le message.
voici le script du formulaire:

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[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].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[i]);
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+' must contain an e-mail address.\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+'  \n\n'; }
} if (errors) alert('Pour valider le formulaire, vous devez renseigner les champs suivants :\n\n'+errors);
document.MM_returnValue = (errors == '');
}


voici le champ caché:

<div class="champspecial">
<div class="floatgauche">champspecial</div>
<label><input name="username" type="text" size="27" maxlength="80" class="i_text" tabindex="9" id="champspecial" onfocus="this.className='i_focus'" onblur="this.className='i_text'" /></label></div>


Un grand merci pour votre aide.[/i][/i][/i]
Bonjour,
tout nouveau sur le site, je cherche à comprendre comment modifier le script de mon formulaire pour faire fonctionner un champ caché qui, si rempli, indique la présence d'un robot spammeur, permettant ainsi d'annuler le message.
voici le script du formulaire:

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[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].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[i]);
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+' must contain an e-mail address.\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+'  \n\n'; }
} if (errors) alert('Pour valider le formulaire, vous devez renseigner les champs suivants :\n\n'+errors);
document.MM_returnValue = (errors == '');
}


voici le champ caché:

&lt;div class=&quot;champspecial&quot;&gt;
&lt;div class=&quot;floatgauche&quot;&gt;champspecial&lt;/div&gt;
&lt;label&gt;&lt;input name=&quot;username&quot; type=&quot;text&quot; size=&quot;27&quot; maxlength=&quot;80&quot; class=&quot;i_text&quot; tabindex=&quot;9&quot; id=&quot;champspecial&quot; onfocus=&quot;this.className='i_focus'&quot; onblur=&quot;this.className='i_text'&quot; /&gt;&lt;/label&gt;&lt;/div&gt;


Un grand merci pour votre aide.
[/i][/i][/i]
euh, désolé, je suis complètement à la masse, car le script indiqué n'a rien à voir avec mon formulaire!!!
il est en fait associé à un script sur les pages persos de Free.
je vais revoir tout ça et je reviendrais si besoin.
merci encore.
Les robots et spammeur automatique ont généralement le javascript désactivé. Il faut donc testé ce champs en langage serveur (php, asp...) et non en javascript