Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    46

    problema con il isNaN()

    salve a tutti

    ho un problema con il isNaN()
    cioé

    ho un form con vari campi e devo controllare che siano solo numerici
    allora faccio

    if (isNaN(parseInt(campo))) {
    alert("prova")
    }

    e tutto funziona se metto es: jjj in un campo
    ma se come primo valore metto un numero es: 8jj mi passa il campo come se fosse numerico e non mi da l'alert

    quale puo essere il problema?????????

    grazie

  2. #2
    il problema è che isNaN() a mio avviso non funziona molto bene in quanto anche io personalmente ho trovato sempre problemi con questa funzione.
    poi se qualcuno puo smentirmi ne sarei lieto
    Un salustro a tutti

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    46
    ma esiste un altro modo per verificare che un campo sia composto solo da numeri e da nessuna lettera????

  4. #4
    Prova questo
    codice:
    <html>
    <head>
      <script language="JavaScript">
        function controllo(){
    	  var val=document.forms(0).txt.value;
    	  var newValue="";
    	  var flag=0;
    	  
    	  for(var i=0;i<val.length;i++){
             if(isNaN(val.charAt(i))){
    		   alert("LETTERALE " + val.charAt(i));
    		   flag=1;
    		   break;
    		 }else{
    		   alert("NUMERICO " + val.charAt(i));
    		 }//end if
     	  }//end for
    	  if(flag==1){
    	    alert("ATTENZIONE!!!: inserire solo caratteri numerici");
    	  }//end if
    	}//end function
      </script>
    </head>
    
    <body>
    <form>
     <input type="text" name="txt" value="80A001 ">
    
    
     <input type="button" onclick="controllo()" value=" OK ">
     
    </form>
    </body>
    </html>
    Un salustro a tutti

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    isNaN funziona come deve (scondo le specifiche): se un campo inizia con un numero, per lui e` numerico.

    Per il tuo controllo puoi usare le regexp:

    var campo = document.NOMEFORM.NOMECAMPO.value;
    if(campo.match(/^[\d.]+$/) alert("tutto numerico")
    else("ci sono caratteri non numerici");

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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