Visualizzazione dei risultati da 1 a 7 su 7

Discussione: validare data

  1. #1

    validare data

    che sa trovare l'errore
    posto il mio codice completo:
    codice:
    <%@LANGUAGE="VBSCRIPT"%>
    
    <% If (CStr(Request("MM_insert")) = "form1") Then 
    response.Write("ciao")
    end if %> 
    
    <html> 
    <head> 
    
    <script language="javascript" type="text/javascript">
    
    
    function valida(theForm) {
    
    var strValue = document.form1.miadata.value;
    
      var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
    
      //check to see if in correct format
      if(!objRegExp.test(strValue))
        return false; //doesn't match pattern, bad date
      else{
    
        for (i=0; i<strValue.length; i++) {
          if (strValue.charAt(i)>'9') or (strValue.charAt(i)<'0')
            break;
        }
        var strSeparator=str.charAt(i);
    
        var arrayDate = strValue.split(strSeparator); //split date into month, day, year
        //create a lookup for months not equal to Feb.
        var arrayLookup = { '01' : 31,'03' : 31, '04' : 30,'05' : 31,'06' : 30,'07' : 31,
                            '08' : 31,'09' : 30,'10' : 31,'11' : 30,'12' : 31}
        var intDay = parseInt(arrayDate[1]);
    
        //check if month value and day value agree
        if(arrayLookup[arrayDate[0]] != null) {
          if(intDay <= arrayLookup[arrayDate[0]] && intDay != 0)
            return true; //found in lookup table, good date
        }
    
        //check for February (bugfix 20050322)
        var intMonth = parseInt(arrayDate[0]);
        if (intMonth == 2) { 
           var intYear = parseInt(arrayDate[2]);
           if( ((intYear % 4 == 0 && intDay <= 29) || (intYear % 4 != 0 && intDay <=28)) && intDay !=0)
              return true; //Feb. had valid number of days
           }
      }
      return false; //any other values, bad date
    }
    
    </script>
    
    </head> 
    
    <body>
    <form action="<%=MM_editAction%>" method="POST" name="miadata" id="miadata" onsubmit="return valida(this)">
      <input name="miadata" type="text" id="miadata" >
      <input type="submit" name="Submit" value="Invia">
      <input type="hidden" name="MM_insert" value="form1">
    </form>
    </body> 
    </html> :dhò:

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    il form deve avere name="form1" altrimenti la prima riga della funzione non trova l'oggetto.

    Hai anche assegnato lo stesso id (miadata) a due oggetti diversi: cambiane uno
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Grazie mi era scappato
    ho modificato come mi hai detto, ma ancora non effettua la chiamata alla funzione..

    codice:
    <form action="<%=MM_editAction%>" method="POST" name="form1" onsubmit="return valida(this)">
      <input name="miadata" type="text" id="miadata" >
      <input type="submit" name="Submit" value="Invia">
      <input type="hidden" name="MM_insert" value="form1">
    </form>

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    la funzione viene eseguita. Perchè hai questo dubbio? Quali input usi per testare la funzione?

    Però non ho capito perchè richiami la funzione valida(this) se poi non utilizzi mai l'argomento passato
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    si si hai ragione usavo una data non valida!
    solo che non mi fa l'alert solito ' inserire un campo data valido'

    Però non ho capito perchè richiami la funzione valida(this) se poi non utilizzi mai l'argomento passato
    perchè non sono capace di farlo funzionare nell'altro modo, ma penso che ho capito che vuoi dire elimanare la riga della variabile:
    var strValue = document.form1.miadata.value;
    e poi.. non so pioù andare avanti

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    1) per l'alert modifica lo script così:
    codice:
    ...
    if(!objRegExp.test(strValue)) {
        alert('campo errato');
        return false; //doesn't match pattern, bad date
      }
      else{

    2) per l'argomento intendevo un altra cosa
    elimina la parola 'this' (lasciando le sole parentesi) da
    codice:
    onsubmit="return valida(this)"
    e allo stessso modo togli la parola 'theform' da
    codice:
    function valida(theForm) {

    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7


    tutto bene

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.