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

    submit controllo più funzioni

    ciao ho un form con un bottone.. ora a questo bottone quando viene premuto vorrei far verificare più funzioni al momento ho fatto così:

    Codice PHP:
    <input type="submit" name="Submit" value="Invia Modulo !" tabindex="29" 
             
    onclick="MM_validateForm('form_cap','','RisNum');return document.MM_returnValue"
             
    /> 
    però ho altre funzioni che vorrei che eseguisse prima dell'invio del form:

    "MM_validateForm('form_nome','','R');return document.MM_returnValue"
    "MM_validateForm('form_via','','R');return document.MM_returnValue"

    ho provato a fare:
    Codice PHP:
    onclick="MM_validateForm('form_cap','','RisNum');return document.MM_returnValue" && "MM_validateForm('form_nome','','R');return document.MM_returnValue" 
    ma non funzia...
    ... come posso fare? :master:

  2. #2
    io all'evento onclick richiamerei un'unica funzione Check con tutti i parametri necessari per il funzionamento di tutte le funzioni di cui hai bisogno.

    Poi all'interno della funzione Check metterei un richiamo a tutte le funzioni di cui ho bisogno passando i paremetri opportuni.
    Visual Basic e Dintorni
    Blog sullo sviluppo Web in generale

  3. #3
    ahh.. ok è una cosa che non ho mai fatto mi potresti aiutare?

    nell head ho messo

    function okform() {
    MM_validateForm('form_cap','','RisNum');return document.MM_returnValue;
    MM_validateForm('form_nome','','R');return document.MM_returnValue;
    }

    e al bottone submit ho messo onclick="okform();return false" ... però mi controlla solo la prima funzione ... sicuramtne c'è qualche errore ...

  4. #4
    se non erro, dopo un'istruzione return, javascript (in realtà anche altri linguaggi) interrompe l'esecuzione della funzione ed esce. Forse ecco perchè ti esegue solo la prima, prova a togliere tutti i return document.MM_returnValue
    Visual Basic e Dintorni
    Blog sullo sviluppo Web in generale

  5. #5
    infatti ora funziona .. solo che non mi invia il modulo onclick="okform();return false" e non posso togliere return false perchè altimenti me lo invia anche se il form non è compilato...

  6. #6
    al posto di input="submit" metti input="button"
    al termine delle varie funzioni, se il modulo è stato compilato aggiungi l'istruzione [nomeform].submit();
    Visual Basic e Dintorni
    Blog sullo sviluppo Web in generale

  7. #7
    ok ... penso ci vada una condizione ... mi potresti dare l'ultimo aiuto... questo è il cod javascript nell head.

    Codice PHP:
    <script type="text/JavaScript">
    <!--
    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); 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; if ((val=val.value)!="") {
          if (
    test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
            if (
    p<|| 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<numerrors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
        } } } else if (
    test.charAt(0) == 'R'errors += '- '+nm+' is required.\n'; }
      } if (
    errorsalert('The following error(s) occurred:\n'+errors);
      
    document.MM_returnValue = (errors == '');
    }

    function 
    okform() {
    MM_validateForm('form_cap','','RisNum');
    MM_validateForm('form_nome','','R');
    MM_validateForm('form_via','','R');
    MM_validateForm('form_descrizione','','R');
    MM_validateForm('form_prezzomin','','RisNum');
    MM_validateForm('form_prezzomax','','RisNum');
    MM_validateForm('form_cap','','RisNum');
    MM_validateForm('form_camere','','RisNum');
    MM_validateForm('form_email','','NisEmail');// campo non obbligatoio ma da verificare
    [form].submit();
    }
    //-->
    </script> 
    per l'invio uso:
    <input type="submit" name="button" value="Invia Modulo !" tabindex="29"
    onclick="okform();"
    presumo si debba fare una condizione dentro a okform() .... solo che non ho idea...

  8. #8
    no, mi sono spiegato male
    Codice PHP:
    [form].submit(); 
    non va bene, devi scrivere qualcosa tipo
    Codice PHP:
    miaform.submit(); 
    dove miaform è l'id della tua form tipo:
    Codice PHP:
    <form action="blabla" id="miaform"></form
    poi se l'input è di tipo submit, ogni volta che uno clicca verrà sempre fatto il submit del forum. Per evitare questo fallo diventare di tipo button.

    Per quanto riguarda la condizione che determina l'invio del form io normalmente mi creo un contatore di errori che viene incrementato ogni volta che un controllo del form fallisce (per esempio un campo lasciato vuoto), poi faccio: se contatore = 0 allora submit, altrimenti vuol dire che c'era almeno un errore
    Visual Basic e Dintorni
    Blog sullo sviluppo Web in generale

  9. #9

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 © 2024 vBulletin Solutions, Inc. All rights reserved.