Newsgroup: it.comp.lang.javascript
Titolo: validazione campo

ciao a tutti,
ho un form con una casella di testo. Prima di "postare" il form ad una
pagina .asp ho bisogno di controllare che l'input immesso dall'utente sia
del tipo: 1.20.450 ???
1.00.000 è un valore valido
2.00.000 non è valido
si tratta di tempi...1m.60sec.999millesimi
ecco il codice attuale del form:
<form method="POST" action="timeprocess.asp">
<p>
<input type="text" name="tempo" size="20"></p>
<p><input type="submit" value="Invia" name="B1"><input type="reset"
value="Reimposta" name="B2"></p>
</form>

 si tratta di tempi...1m.60sec.999millesimi
Butto giu' una RegExp al volo:
/^1\.[0-6][0-9]\.[0-9]{3}%/
Se non va torna qui...
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
Per rispondere: togli il PUNTO e metti un .


ho modificato per le mie esigenze uno script per il controllo della data di
nascita che ho trovato in rete...purtroppo mi da errore di
visualizzazione...
ecco il codice completo della pagina html:
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nuova pagina 1</title>
</head>
<body>
<script language="javascript">
 <!--
  function gpv() {
     // Variabili associate ai campi del gpv
     var tempo = document.gpv.tempo.value;
     //Effettua il controllo sul campo DATA DI tempo
     if (document.gpv.tempo.value.substring(2,3) != "." ||
           document.gpv.tempo.value.substring(5,6) != "." ||
           isNaN(document.gpv.tempo.value.substring(0,2)) ||
           isNaN(document.gpv.tempo.value.substring(3,5)) ||
           isNaN(document.gpv.tempo.value.substring(6,10))) {
             alert("Inserire tempo in formato mm.ss.mmmm");
              document.gpv.tempo.value = "";
              document.gpv.tempo.focus();
              return false;
        }
        else if (document.gpv.tempo.value.substring(0,2) > 59) {
           alert("Impossibile utilizzare un valore superiore a 59 per i
minuti");
           document.gpv.tempo.select();
           return false;
        }
        else if (document.gpv.tempo.value.substring(3,5) > 59) {
           alert("Impossibile utilizzare un valore superiore a 59 per i
secondi");
           document.gpv.tempo.value = "";
           document.gpv.tempo.focus();
           return false;
        }
        else if (document.gpv.tempo.value.substring(6,10) < 9999) {
           alert("Impossibile utilizzare un valore inferiore a 9999 per i
millesimi");
           document.gpv.tempo.value = "";
           document.gpv.tempo.focus();
           return false;
        }
        }
        //-->
</script>
<form method="POST" name="gpv" action="timeprocess.asp">
  <p>
  <input type="text" name="tempo" size="20"></p>
  <p><input type="button" value="Invia" onClick="gpv()"><input type="reset"
value="Reimposta" name="B2"></p>
</form>
</body>
</html>
ciao!

 Se non va torna qui...
Ric come mai hai messo la % alla fine?
--
A presto. Ro!
Lo staff di Risorse.net
http://www.risorse.net

 > Se non va torna qui...
ho risolto cosě:
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<SCRIPT language=javascript>
 <!--
  function Modulo() {
     // Variabili associate ai campi del modulo
     var nascita = document.modulo.nascita.value;
                //Effettua il controllo sul campo DATA DI NASCITA
     if (document.modulo.nascita.value.substring(1,2) != "." ||
           document.modulo.nascita.value.substring(4,5) != "." ||
           isNaN(document.modulo.nascita.value.substring(0,1)) ||
           isNaN(document.modulo.nascita.value.substring(2,4)) ||
           isNaN(document.modulo.nascita.value.substring(5,7))) {
             alert("Inserire il tempo in formato m.ss.mmm");
              document.modulo.nascita.value = "";
              document.modulo.nascita.focus();
              return false;
        }
        else if (document.modulo.nascita.value.substring(0,1) > 59) {
           alert("Impossibile utilizzare un valore superiore a 59 per i
minuti");
           document.modulo.nascita.select();
           return false;
        }
        else if (document.modulo.nascita.value.substring(2,4) > 59) {
           alert("Impossibile utilizzare un valore superiore a 59 per i
secondi");
           document.modulo.nascita.value = "";
           document.modulo.nascita.focus();
           return false;
        }
        else if (document.modulo.nascita.value.substring(5,7) > 999) {
           alert("Impossibile utilizzare un valore superiore a 999 per i
millesimi");
           document.modulo.nascita.value = "";
           document.modulo.nascita.focus();
           return false;
        }
        //INVIA IL MODULO
        else {
           document.modulo.action = "elabora_dati.asp";
           document.modulo.submit();
        }
  }
 //-->
</SCRIPT>
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY>
  <FORM name=modulo method=post>
  Giro piů veloce in gara(es: 1.24.540)<br><INPUT name=nascita>
<INPUT onclick=Modulo() type=button value=Invia>
   </FORM></BODY></HTML>

 ho risolto cosě:
[mega cuttone]
Giusto due righe :))
Fare un:
var nascita = document.modulo.nascita;
if (!nascita.value.match(/^1\.[0-6][0-9]\.[0-9]{3}$/)) {
    nascita.focus();
    return false;
}
...pareva brutto :P


 ...pareva brutto :P
miii!!! Grazie mille!!! ;-)) meno male...si č accorciata la pagina...fra
questo javascript e il resto del codice ASP stavo impazzendo!!!
ciao!

 Ric come mai hai messo la % alla fine?
Errore di battitura fu! Volevo metterci un $ :-))


 Errore di battitura fu! Volevo metterci un $ :-))
fiuuuu.... mi stavo già smazzando la doc alla ricerca di nuovi orizzonti :P
--
A presto. Ro!
Risorse.net

 fiuuuu.... mi stavo già smazzando la doc alla ricerca di nuovi orizzonti :P
Enno', Riccardo mica puo' rubarmi il lavoro, il distributore ufficiale 
per l'apertura di nuovi mondi e/o orizzonti qua sono io.. 8)
;)
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 per l'apertura di nuovi mondi e/o orizzonti qua sono io.. 8)
Confermo e sottoscrivo! :-)
p.s.
Ricevuto il decoder di /NEO/?


 per l'apertura di nuovi mondi e/o orizzonti qua sono io.. 8)
Sottoscrivo anche io ;)
Per l'autorevolezza e la puntualità Zer0 mi ricorda Rob<*¿*>erto (Robbe' se
per caso leggessi 'sto msg apprezza il punto di domanda al contrario... ;)
--
A presto. Ro!
Risorse.net.

 Ricevuto il decoder di /NEO/?
Yep, ma non ho avuto modo di darci un occhiata, tant'e' cmq che lo 
considera "corpo" dell'email.. la prossima volta zippamelo. :P


 Per l'autorevolezza e la puntualità Zer0 mi ricorda Rob<*¿*>erto 
Uhellalla'.. lo prendo come un complimentone.. chissa', tra l'altro, che 
fine ha fatto..


 che fine ha fatto..
Una volta era qua se non ricordo male:
 
http://www.probo.it/JavaScript
Ho provato: la pagina esiste, solo che IE (5.5sp2) si inchioda
vergognosamente (vista la lentezza che assume il pc sembrerebbe quasi uno
strano loop...)

, 
c.largh...@executive.it
 says...

Ultimo aggiornamento alla pagina Agosto 1999 :-(
Pero' hanno fatto in tempo a copiare il testo delle tre opzioni che ho 
io nella mia ricerca delle FAQ :-)
Dopo che le ho "inventate" le ho viste in decine di siti.
Darius cmq faceva parte della combriccola di probo... chissa' se ci 
legge?


 che fine ha fatto..
Boh?!
Ormai è una figura mitologgica (da leggere alla Verdone ;)
--
A presto. Ro!
Lo staff di Risorse.net
http://www.risorse.net