Notizie: scarica ora l'ultima versione disponibile di Thunderbird!

Autore Topic: Funzione per validare una form  (Letto 1970 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Kekko

  • Post: 11
    • http://www.webclient.it
Funzione per validare una form
« il: 22 Novembre 2007 12:12:20 »
Questa funzione in IE va:
 
Codice: [Seleziona]
             function form_val(theForm, Campi)
              {
                       myString = Campi;
                       ArrPar = myString.split(',');
                       for (i = 0; i < ArrPar.length; i++)
                       {
                            cmp = Trim(ArrPar[i]);
                            if (isNav){
                                Val = e.document.forms[theForm].elements[cmp].value;
                            } else {
                                Val = window.document.forms[theForm].elements[cmp].value;
                            }

                            if (Val == \"\")
                            {
                                alert ('Form non completo!');
                                if (isNav){
                                    e.document.forms[theForm].elements[cmp].focus();
                                } else {
                                    window.document.forms[theForm].elements[cmp].focus();
                                }

                                return false;
                            }
                       }

                       document.forms[theForm].submit();
                       return (true);
              }
CONSOLE DEGLI ERRORI FIREFOX
Errore: e is not defined
File sorgente: http://www.prova1.int/Ordini/
Riga: 133
« Ultima modifica: 22 Novembre 2007 12:47:34 da lucasali »

Offline Kekko

  • Post: 11
    • http://www.webclient.it
Re: Funzione per validare una form
« Risposta #1 il: 22 Novembre 2007 12:18:39 »
Scusate se c'è 2 volte la discussione, ma la prima volta mi ha dato un messaggio d'errore.

Grazie mille

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: Funzione per validare una form
« Risposta #2 il: 22 Novembre 2007 12:22:12 »
Senza vedere tutto il codice della pagina, è difficile dare un'indicazione.
Per cortesia usa il tag CODE per inserire il codice.

Offline Kekko

  • Post: 11
    • http://www.webclient.it
Re: Funzione per validare una form
« Risposta #3 il: 22 Novembre 2007 12:39:09 »
Codice: [Seleziona]
<HEAD>
                       <TITLE></TITLE>

                       <SCRIPT LANGUAGE = "JavaScript">
                                     .........................................
                                     function form_val(theForm, Campi)
              {
                       myString = Campi;
                       ArrPar = myString.split(',');
                       for (i = 0; i < ArrPar.length; i++)
                       {
                            cmp = Trim(ArrPar[i]);
                            if (isNav){
                                Val = e.document.forms[theForm].elements[cmp].value;
                            } else {
                                Val = window.document.forms[theForm].elements[cmp].value;
                            }

                            if (Val == \"\")
                            {
                                alert ('Form non completo!');
                                if (isNav){
                                    e.document.forms[theForm].elements[cmp].focus();
                                } else {
                                    window.document.forms[theForm].elements[cmp].focus();
                                }

                                return false;
                            }
                       }

                       document.forms[theForm].submit();
                       return (true);
              }
 
                       </SCRIPT>


                </HEAD><BODY bgcolor = "#DEDEDE" TEXT = "#000000"
                  vlink = "#000000" alink = "#000000" link = "#000000"
                  background="http://www.prova1.int/Ordini/img/sf1.png" bgproperties="fixed"  ><form action="" METHOD="POST" NAME="LogIn" OnSubmit="return false">
                           <table width="55%" align="center">
                                  <tr>
                                      <th colspan="2">Riconoscimento Utente</th>
                                  </tr>
                                  <tr>
                                      <td align="right">Utente:&nbsp;</td>
                                      <td>
                                          <INPUT TYPE="Text" NAME="User" VALUE="">
                                      </td>
                                  </tr>
                                  <tr>
                                      <td align="right">Password:&nbsp;</td>
                                      <td>
                                          <INPUT TYPE="Password" NAME="Passw" VALUE="">
                                      </td>
                                  </tr>
                                  <tr>
                                      <td colspan="2" align="center">
                                          <INPUT TYPE="Hidden" NAME="Cmd" Value="Accedi">
                                          <INPUT TYPE="Button" OnClick="return form_val('LogIn', 'User, Passw');" Value="Accedi">
                                      </td>
                                  </tr>
                           </table>
                     </form>

Offline lucasali

  • Moderatore
  • Post: 7493
Re: Funzione per validare una form
« Risposta #4 il: 22 Novembre 2007 13:03:28 »
questa riga ......................................... si riferisce a qualcosa che hai tagliato?
isNav dovrebbe essere?
se alla fine dello script fai: document.forms[theForm].submit();
allo stesso modo non puoi togliere e. e window. dalle altre righe?

Offline Kekko

  • Post: 11
    • http://www.webclient.it
Re: Funzione per validare una form
« Risposta #5 il: 22 Novembre 2007 13:12:40 »
questa riga ......................................... si riferisce a qualcosa che hai tagliato?
isNav dovrebbe essere?
se alla fine dello script fai: document.forms[theForm].submit();
allo stesso modo non puoi togliere e. e window. dalle altre righe?

Si era per far capire che ci sono altre cose sopra e anche sotto a dirla tutta

Codice: [Seleziona]
              var isNav=false
              if (parseInt(navigator.appVersion)>=4){
              if (navigator.appName == "Netscape"){
                  window.captureEvents(Event.ONKEYPRESS)
                  window.onkeypress = tasti
                  isNav = true
              }
              else
                  document.onkeydown = tasti
              }

Ho capito ciò che dici ma l'errore non è quello.

Codice: [Seleziona]
              function form_val(theForm, Campi)
              {
                       myString = Campi;
                       ArrPar = myString.split(',');
                       for (i = 0; i < ArrPar.length; i++)
                       {
                            cmp = Trim(ArrPar[i]);
                            if (isNav){
                                Val = e.document.forms[theForm].elements[cmp].value;
                            } else {
                                Val = window.document.forms[theForm].elements[cmp].value;
                            }

                            if (Val == \"\")
                            {
                                alert ('Form non completo!');
                                if (isNav){
                                    e.document.forms[theForm].elements[cmp].focus();
                                } else {
                                    window.document.forms[theForm].elements[cmp].focus();
                                }

                                return false;
                            }
                       }

                       if (isNav){
                           e.document.forms[theForm].submit();
                       } else {
                           window.document.forms[theForm].submit();
                       }

                       return (true);
              }


Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: Funzione per validare una form
« Risposta #6 il: 22 Novembre 2007 13:14:35 »
Il codice che hai postato non è completo, puoi postarlo completo o fornire un link a una pagina dove si trova?

Offline Kekko

  • Post: 11
    • http://www.webclient.it
Re: Funzione per validare una form
« Risposta #7 il: 22 Novembre 2007 15:45:07 »
Questa è la parte Script dell'Head:
Codice: [Seleziona]
                       <SCRIPT LANGUAGE = "JavaScript">

              function StatoChk (formname, checkid, thestate)
              {
                   var el_collection=eval("document.forms."+formname+"."+checkid)
                   for (c=0;c<el_collection.length;c++)
                   {
                        el_collection[c].disabled = thestate;
                   }

              }

              function CtrChk(frm, CmpCnt, CmpAtt, c)
              {
                       myString = CmpAtt;
                       ArrPar = myString.split(',');
                       for (i = 0; i < ArrPar.length; i++)
                       {
                            cmp = Trim(ArrPar[i]);
                            if (c.checked){
                                c.form.elements[cmp].disabled = false;
                            } else {
                                c.form.elements[cmp].checked = false;
                                c.form.elements[cmp].value = '';
                                c.form.elements[cmp].disabled = true;
                            }
                       }
              }

              function CheckAll(formname,checkid,thestate)
              {
                   var el_collection=eval("document.forms."+formname+"."+checkid)
                   for (c=0;c<el_collection.length;c++)
                   {
                        el_collection[c].checked=thestate
                   }
              }


              function ChkData (Frm, CmpGG, CmpMM, CmpAA, GG, MM, AA, GGConf, MMConf, AAConf)
              {
                       if (AA.length == 4)
                       {
                           if (MM.length != 2){ MM = "0"+MM;}
                           if (GG.length != 2){ GG = "0"+GG;}
                           DataRit = AA+MM+GG;
                           DataOgg = AAConf+MMConf+GGConf;

                           if (DataOgg > DataRit)
                           {
                               alert ('Data Errata');
                               document.forms[Frm].elements[CmpGG].value = GGConf;
                               document.forms[Frm].elements[CmpMM].value = MMConf;
                               document.forms[Frm].elements[CmpAA].value = AAConf;
                               document.forms[Frm].elements[CmpGG].focus();
                           }
                       }
                       else
                       {
                           if (AAData.length == 0)
                           {
                               document.forms[Frm].elements[CmpGG].value = GGConf;
                               document.forms[Frm].elements[CmpMM].value = MMConf;
                               document.forms[Frm].elements[CmpAA].value = AAConf;
                           }
                           else
                           {
                               alert ('Data Errata');
                               document.forms[Frm].elements[CmpGG].value = GGConf;
                               document.forms[Frm].elements[CmpMM].value = MMConf;
                               document.forms[Frm].elements[CmpAA].value = AAConf;
                               document.forms[Frm].elements[CmpGG].focus();
                           }
                       }
              }


              function CopiaCampo (Da, A, Frm)
              {
                       if (isNav){
                           e.document.forms[Frm].elements[A].value=e.document.forms[Frm].elements[Da].value;
                           e.document.forms[Frm].elements[A].focus();
                       } else {
                           window.document.forms[Frm].elements[A].value=window.document.forms[Frm].elements[Da].value;
                           window.document.forms[Frm].elements[A].focus();
                       }

              }

              function Cnt(Val, theForm, cmp, Valmax)
              {
                       if (Val > Valmax)
                       {
                            alert ('Valore Errato!');
                            if (isNav){
                                e.document.forms[theForm].elements[cmp].value='';
                                e.document.forms[theForm].elements[cmp].focus();
                            } else {
                                window.document.forms[theForm].elements[cmp].value='';
                                window.document.forms[theForm].elements[cmp].focus();
                            }
                       }
              }

              function onlynum(e, h)
              {
                       if (h == 0){ Min = 46;}
                       else { Min = 48;}
                       if (e.which)
                       {
                           if(e.which!=Min && e.which!=8 && (e.which<48 || e.which>57))
                           return false;
                       }
                       else if(e.keyCode)
                       {
                            if(e.keyCode!=Min && e.keyCode!=8 && (e.keyCode<48 || e.keyCode>57))
                            return false;
                       }
                       return true;
              }

              function form_val(theForm, Campi)
              {
                       myString = Campi;
                       ArrPar = myString.split(',');
                       for (i = 0; i < ArrPar.length; i++)
                       {
                            cmp = Trim(ArrPar[i]);
                            if (isNav){
                                Val = e.document.forms[theForm].elements[cmp].value;
                            } else {
                                Val = window.document.forms[theForm].elements[cmp].value;
                            }

                            if (Val == "")
                            {
                                alert ('Form non completo!');
                                if (isNav){
                                    e.document.forms[theForm].elements[cmp].focus();
                                } else {
                                    window.document.forms[theForm].elements[cmp].focus();
                                }

                                return false;
                            }
                       }

                       document.forms[theForm].submit();
                       return (true);
              }

              function WinPers(url, finestra, w, h)
              {
                       w = parseInt(screen.width * w/100);
                       h = parseInt(screen.height * h/100);

                       lt = ((screen.width - w)/2) - 5;
                       tp = ((screen.height - h)/2) - 40;
                       popupWin = window.open(url,finestra,'left='+lt+', top='+tp+', scrollbars=yes, titlebar=yes, resizable=yes, status=yes, width='+w+',height = '+h)
              }

              function WinRight(url, finestra, w, h)
              {
                       w = parseInt(screen.width * w/100);
                       h = parseInt(screen.height * h/100);

                       lt = screen.width - w - 13;
                       tp = 0;
                       popupWin = window.open(url,finestra,'left='+lt+', top='+tp+', scrollbars=yes,titlebar=yes, resizable=yes, width='+w+',height = '+h)
              }

              function c_prompt(indi, msg, indi2)
              {
                       res = confirm (msg);
                       if (res){
                           document.location.href(indi);
                       }
                       else
                       {
                           if (indi2 != ''){
                               document.location.href(indi2);
                           }
                       }
              }

              function Trim(stringa)
              {
                       reTrim=/\s+$|^\s+/g;
                       return stringa.replace(reTrim,"");
              }


              function IDGetCtrl(ID)
              {
                       Car = ID.substr(0,2);
                       Car = Trim(Car);
                       return Car;
              }

              function IDGetRiff(ID)
              {
                       Car = ID.substr(2,4);
                       return Car;
              }

              function IDGetW(ID)
              {
                       Car = ID.substr(6,2);
                       return Car;
              }

              function IDGetH(ID)
              {
                       Car = ID.substr(8,2);
                       return Car;
              }

              function IDGetTab(ID)
              {
                       Car = ID.substr(30,25);
                       Car = Trim(Car);
                       return Car;
              }

              function IDGetCmpRit(ID)
              {
                       Car = ID.substr(55,50);
                       Car = Trim(Car);
                       return Car;
              }

              function IDGetDesNor(ID)
              {
                       Car = ID.substr(105,1);
                       Car = Trim(Car);
                       return Car;
              }

              function IDGetKeyPar(ID)
              {
                       Car = ID.substr(106,50);
                       Car = Trim(Car);
                       return Car;
              }

              function IDGetDesEve(ID)
              {
                       Car = ID.substr(156,1);
                       Car = Trim(Car);
                       return Car;
              }


              function RestValPar(KeyPar, frm)
              {
                       VKeyPar = '';
                       A = KeyPar.length;
                       if (A > 0)
                       {
                           myString = KeyPar;
                           ArrPar = myString.split(',');
                           for (i = 0; i < ArrPar.length; i++)
                           {
                                cmp = Trim(ArrPar[i]);
                                if (isNav){
                                    Val = e.document.forms[frm].elements[cmp].value;
                                } else {
                                    Val = window.document.forms[frm].elements[cmp].value;
                                }

                                VKeyPar = VKeyPar+Val+',';
                           }
                       }
                       else
                       {
                           VKeyPar = '';
                       }

                       return VKeyPar;
              }


              var isNav=false
              if (parseInt(navigator.appVersion)>=4){
              if (navigator.appName == "Netscape"){
                  window.captureEvents(Event.ONKEYPRESS)
                  window.onkeypress = tasti
                  isNav = true
              }
              else
                  document.onkeydown = tasti
              }

              var pos=null
              var variabili=null
              var w=null
              var h=null
              var KeyC = null
              var Id = null
              var nm = null
              var ctrl = null
              var riff = null
              var frm = null
              var ValInp = null
              var Tabella = null
              var chiavedes = null
              var chiave = null
              var chiavesup = null
              var CmpRit = null
              var FlgDesNor = null
              var KeyPar = null
              var VKeyPar = null
              var DesEve = null


              function tasti(e)
              {
                       if (isNav){
                           KeyC = e.keyCode;
                           Id = e.srcElement.id;
                           nm = e.srcElement.name;
                           ValInp = e.srcElement.value;
                       }
                       else {
                           KeyC = window.event.keyCode;
                           Id = window.event.srcElement.id;
                           nm = window.event.srcElement.name;
                           ValInp = window.event.srcElement.value;
                       }

                       KeyPar = Trim(IDGetKeyPar(Id));
                       VKeyPar = Trim(RestValPar(KeyPar, frm));


                       ctrl = IDGetCtrl(Id);
                       riff = IDGetRiff(Id);
                       w = IDGetW(Id);
                       h = IDGetH(Id);
                       Tab = Trim(IDGetTab(Id));
                       CmpRit = Trim(IDGetCmpRit(Id));
                       FlgDesNor = Trim(IDGetDesNor(Id));
                       DesEve = Trim(IDGetDesEve(Id));

                       if (Id != ''){
                           if (KeyC == 120){
                               WinPers('http://www.prova1.int/Ordini/help.php?ctrl='+ctrl+'&riff='+riff+'&nm='+nm+'&Tab='+Tab+'&
CmpRit='+CmpRit+'&FlgDesNor='+FlgDesNor+'&KeyPar='+KeyPar+'&DesEve='+DesEve+'&
VKeyPar='+VKeyPar+'&ValInp='+ValInp+'&ID=&CodTit=&CodSot=&Frm='+frm+'&nm='+nm,'hlp_win',w,h)
                           }
                       }
              }


              function HelpMouse(frm, campo)
              {

                       if (isNav){
                           Id = e.document.forms[frm].elements[campo].id;
                           nm = e.document.forms[frm].elements[campo].name;
                           ValInp = e.document.forms[frm].elements[campo].value;
                       } else {
                           Id = window.document.forms[frm].elements[campo].id;
                           nm = window.document.forms[frm].elements[campo].name;
                           ValInp = window.document.forms[frm].elements[campo].value;
                       }


                       KeyPar = Trim(IDGetKeyPar(Id));
                       VKeyPar = Trim(RestValPar(KeyPar, frm));

                       ctrl = IDGetCtrl(Id);
                       riff = IDGetRiff(Id);
                       w = IDGetW(Id);
                       h = IDGetH(Id);
                       Tab = Trim(IDGetTab(Id));
                       CmpRit = Trim(IDGetCmpRit(Id));
                       FlgDesNor = Trim(IDGetDesNor(Id));
                       DesEve = Trim(IDGetDesEve(Id));

                       if (Id != ''){
                           WinPers('http://www.prova1.int/Ordini/help.php?ctrl='+ctrl+'&riff='+riff+'&nm='+nm+'&Tab='+Tab+'&
CmpRit='+CmpRit+'&FlgDesNor='+FlgDesNor+'&KeyPar='+KeyPar+'&DesEve='+DesEve+'&
VKeyPar='+VKeyPar+'&ValInp='+ValInp+'&ID=&CodTit=&CodSot=&Frm='+frm+'&nm='+nm,'hlp_win',w,h)
                       }
              }

              function CntCampo(ID)

              {

                       if (isNav){
                           ValInp = e.srcElement.value;
                           Id = e.srcElement.id;
                       }
                       else {
                           ValInp = window.event.srcElement.value;
                           Id = window.event.srcElement.id;
                       }


                       ctrl = IDGetCtrl(Id);
                       riff = IDGetRiff(Id);
                       w = IDGetW(Id);
                       h = IDGetH(Id);
                       Tab = Trim(IDGetTab(Id));
                       CmpRit = Trim(IDGetCmpRit(Id));
                       FlgDesNor = Trim(IDGetDesNor(Id));
                       DesEve = Trim(IDGetDesEve(Id));

                       KeyPar = Trim(IDGetKeyPar(Id));
                       VKeyPar = Trim(RestValPar(CmpRit, frm));

                       switch (ctrl)
                       {
                               case 'a' :
                                     if (ValInp == ''){
                                         window.event.srcElement.focus();
                                     }
                                     else {
                                         WinPers('http://www.prova1.int/Ordini/controllo.php?ctrl='+ctrl+'&riff='+riff+'&nm='+nm+'&Tab='+Tab+'&
ID=&CodTit=&CodSot=&Chiave='+ValInp+'&Frm='+frm+'&chiavedes='+chiavedes+'&
chiavesup='+chiavesup+'&CmpRit='+CmpRit+'&FlgDesNor='+FlgDesNor+'&KeyPar='+KeyPar+'&
DesEve='+DesEve+'&VKeyPar='+VKeyPar,'cnt_win',w,h)
                                     }
                               break;
                               case 'b' :
                                     if (ValInp == ''){

                                     }
                                     else {
                                         WinPers('http://www.prova1.int/Ordini/controllo.php?ctrl='+ctrl+'&riff='+riff+'&nm='+nm+'&Tab='+Tab+'&
ID=&CodTit=&CodSot=&Chiave='+ValInp+'&Frm='+frm+'&chiavedes='+chiavedes+'&
chiavesup='+chiavesup+'&CmpRit='+CmpRit+'&FlgDesNor='+FlgDesNor+'&KeyPar='+KeyPar+'&
DesEve='+DesEve+'&VKeyPar='+VKeyPar,'cnt_win',w,h)
                                     }
                               break;
                               case 'k' :
                                     if (ValInp == ''){

                                     }
                                     else {
                                         WinPers('http://www.prova1.int/Ordini/k_controllo.php?ctrl='+ctrl+'&riff='+riff+'&nm='+nm+'&Tab='+Tab+'&
ID=&CodTit=&CodSot=&Chiave='+ValInp+'&Frm='+frm+'&chiavedes='+chiavedes+'&
chiavesup='+chiavesup+'&CmpRit='+CmpRit+'&FlgDesNor='+FlgDesNor+'&KeyPar='+KeyPar+'&
DesEve='+DesEve+'&VKeyPar='+VKeyPar,'cnt_win',w,h)
                                     }
                               break;
                       }
              }


             </SCRIPT>
« Ultima modifica: 22 Novembre 2007 18:19:53 da lucasali »

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: Funzione per validare una form
« Risposta #8 il: 22 Novembre 2007 17:19:19 »
Il problema nasce dall'uso di window.captureEvents, che è vecchio, fuori standard e non supportato da firefox/mozilla.
Devi riscrivere il codice in modo che gli eventi siano catturati con addEventListener oppure ristrutturarlo in qualche altro modo a seconda delle tue esigenze.
Ciao, Paolo

Offline Kekko

  • Post: 11
    • http://www.webclient.it
Re: Funzione per validare una form
« Risposta #9 il: 22 Novembre 2007 17:39:43 »
Il problema nasce dall'uso di window.captureEvents, che è vecchio, fuori standard e non supportato da firefox/mozilla.
Devi riscrivere il codice in modo che gli eventi siano catturati con addEventListener oppure ristrutturarlo in qualche altro modo a seconda delle tue esigenze.
Ciao, Paolo

Mi stai dicendo di modificare questa parte di codice :
Codice: [Seleziona]
if (navigator.appName == "Netscape"){
                  window.captureEvents(Event.ONKEYPRESS)
                  window.onkeypress = tasti
                  isNav = true
              }
              else
                  document.onkeydown = tasti
              }

Dove potrei vedere una guida in merito che mostri le differenze tra i 2 gestori di eventi ?

Offline Sokak

  • I speak a logs
  • Moderatore
  • Post: 4371
    • Ask Sokak
Re: Funzione per validare una form
« Risposta #10 il: 22 Novembre 2007 21:36:55 »
Queste sono più domande da html.it o simili... Noi forniamo aiuto sui prodotti mozilla...

Il punto di partenza per tutti gli standard web è comunque il W3c consortium.

TRoverai le specifiche di qualsiasi cosa lì.

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: Funzione per validare una form
« Risposta #11 il: 23 Novembre 2007 11:55:45 »
Da quello che ho visto, non si tratta di modificare una riga, ma di riscrivere varie parti del codice, quindi, come ha già detto laconicamente Sokak, la cosa esula dall'argomento di questo forum.
Due link utili sull'argomento sono:
http://www.quirksmode.org/js/introevents.html
http://www.w3schools.com/js/js_events.asp
Ciao, Paolo

Offline Kekko

  • Post: 11
    • http://www.webclient.it
Re: Funzione per validare una form
« Risposta #12 il: 23 Novembre 2007 17:00:21 »
Grazie 1000 e scusatemi!

Offline Sokak

  • I speak a logs
  • Moderatore
  • Post: 4371
    • Ask Sokak
Re: Funzione per validare una form
« Risposta #13 il: 24 Novembre 2007 13:46:56 »
[OT]

Scusatemi voi! :P

D'ora in poi, prima mi faccio la doccia e il caffè, e poi mi scrollo la pigrizia di dosso e fornisco link più precisi! ;)

Mi sta passando la voglia di vivere, dormo tre/quattro ore a notte, e non credo migliorerà prima della fine delle feste, col mio lavoro... =_=

[/OT]

0 Utenti e 1 Visitatore stanno visualizzando questo topic.