Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    problemone validazione form

    ciao raga, per moivi particolari ho una serie di form (con nome diverso), ma con campi con nomi uguali nella stessa pagina, per convalidare i campi ho preso il js che genera dreamwever e l'ho leggermente modicato. Il problema è che non capisce che deve controllare un campo specifico nel form specifico, cioè se ho due form con un campo di testo "numero" che deve essere obbligatorio ed avere un numero se cerco di convalidare il secondo form e nel primo il campo "numero" ha un numero dentro per lui è tutto ok!
    Devo quindi dirgli di stare attento anche al form, ma come faccio? ecco il codice del js:
    Codice PHP:
    function MM_findObj(nd) { //v4.01
        
    var p,i,x;  
        if(!
    dd=document
        if((
    p=n.indexOf("?"))>0&&parent.frames.length) {
            
    d=parent.frames[n.substring(p+1)].documentn=n.substring(0,p);
        }
        if(!(
    x=d[n])&&d.allx=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(!
    && d.getElementByIdx=d.getElementById(n); 
        
    alert(p+' '+i+' '+x);
        return 
    x;
    }

    function 
    MM_validateForm() { //v4.0
        
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
        
        for (
    i=0i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
            if (
    val) {
                  
    nm=val.name;
                  
    nmb nm;
                  
                  if(
    nmb=='name'){nmb='Nome'}
                  if(
    nmb=='phone'){nmb='Telefono'}
                  if(
    nmb=='surname'){nmb='Cognome'}                  
                  if(
    nmb=='payment'){nmb='Pagamento'}
                      
                if ((
    val=val.value)!="") {                
                  if (
    test.indexOf('isEmail')!=-1) { 
                    
    p=val.indexOf('@');
                    if (
    p<|| p==(val.length-1)) errors+='- '+nmb+' deve contenere un indirizzo email.\n';
                  } 
                else if (
    test!='R') { 
                    
    num parseFloat(val);
                    if (
    isNaN(val)) errors+='- '+nmb+' deve contenere un numero.\n';
                    if (
    test.indexOf('inRange') != -1) { 
                        
    p=test.indexOf(':');
                          
    min=test.substring(8,p); max=test.substring(p+1);
                          if (
    num<min || max<numerrors+='- '+nmb+' deve contenere un numero tra '+min+' e '+max+'.\n';
                    } 
                } 
                } else if (
    test.charAt(0) == 'R') {errors += '- '+nmb+' è obbligatorio.\n'; }
        }
      } 
      if (
    errorsalert('Sono stati riscontrati i seguenti errori:\n'+errors);
      
    document.MM_returnValue = (errors == '');

    e questo è l'esempio di html
    Codice PHP:
    <form name="modify1" action="datecursesuserspayments_modify.php" method="post" onsubmit="MM_validateForm('payment','','RisNum');return document.MM_returnValue">
    <
    input name="payment" type="text" value="20.00"  maxlength="10" size="10"/>
    <
    input name="date" id="date" type="text" value="21-09-2006"  maxlength="10" readonly="1" size="10"/>
    <
    input type="submit" name="submit" value="Modifica" />
    </
    form>

    <
    form name="modify2" action="datecursesuserspayments_modify.php" method="post" onsubmit="MM_validateForm('payment','','RisNum');return document.MM_returnValue">
    <
    input name="payment" type="text" value="20.00"  maxlength="10" size="10"/>
    <
    input name="date" id="date" type="text" value="21-09-2006"  maxlength="10" readonly="1" size="10"/>
    <
    input type="submit" name="submit" value="Modifica" />
    </
    form

    help
    !!! 

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    eh beh...certo...se gli hai assegnato lo stesso id e li raggiungi con document.getElementById() ....

    Perche li hai messi uguali? Distingui te prima gli elementi con id univoci.

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.