Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316

    !isNaN restituisce false anche se il campo della form è vuoto..?

    Ciao, come da titolo, mi serve testare che in un determinato campo non vengano immessi valori numerici, ma solo lettere. ho utilizzato la funzione !isNaN e funziona correttamente..con l'eccezione di quando il campo viene lasciato vuoto (cosa che io voglio sia possibile). Il campo vuoto viene visto come un numero (ma quale?). Come posso evitare questa cosa?
    Aggiungo che misteriosamente a volte non sembra funzionare..

    ciao e grazie

    l.

    edit: aggiungo che misteriosamente da un momento all'altro tutto lo script per testare i campi non funziona più...mi sento un po' stupido ma giuro che non ho toccato niente nel resto dello script quindi non vedo perchè non dovrebbe più funzionare..
    Ultima modifica di leaf; 25-01-2014 a 22:40

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Per far inserire solo testo sarebbe meglio usare una regular exp if(document.nomeform.campodacontrollare.value.test (/[A-Z a-z]/)) per quanto riguarda il va forse sarà qualche errore nella pagina, posta il link alla pagina pubblica.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    link alla pagina pubblica? cioè? XD

    questa è la funzione comunque

    codice:
    function ControllaForm() {
        var controllo=false;
        var fine=document.form1.dataFine.value;
        var inizio=document.form1.dataInizio.value;
        
        if (document.form1.codEvento.value == "") {
            controllo==false;
            alert("Attenzione: il campo CODICE EVENTO è obbligatorio.\nIl form non può essere inviato");
            return controllo;
            
        if( fine < inizio ){
            controllo=false;
            alert('Attenzione: i valori di DATE FINE e DATA INIZIO sono incongruenti.\nIl form non può essere inviato.');
            return controllo;
        
        if(isNaN(document.form1.maxPezzi.value)){
            controllo=false;
            alert('Nel campo MAX NUMERO BRANI è possibile immettere solo un valore numerico.\nIl form non può essere inviato.');
            return controllo;
            
        if(isNaN(document.form1.numSerate.value)){
            controllo=false;
            alert('Nel campo NUMERO DI SERATE è possibile immettere solo un valore numerico.\nIl form non può essere inviato.');
            return controllo;
        
        if(isNaN(document.form1.presentatore.value)){
            controllo=false;
            alert('Nel campo PRESENTATORE non sono ammessi valori numerici.\nIl form non può essere inviato.');
            return controllo;
            
        if(numexp=document.form1.numexp.value=="" || (isNaN(numexp=document.form1.numexp.value)){ //npon funziona più
            controllo=false;
            alert("Attenzione: devi utilizzare un valore numerico per specificare il NUMERO DI ESPERTI che faranno parte della giuria per questo evento.\nIl form non può essere inviato.");
            return controllo;
    
        return controllo=true;
    }

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    tuosito.xxxx/paginademo.xxxx
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Direi che già a prima vista ne hai parecchi di errori.
    Mancano praticamente tutte le chiusure per ogni statement.
    All'interno del primo if non stai assegnando il valore false ma lo stai comparando.
    Dove hai scritto il commentp //non funziona più hai aggiunto una parentesi di troppo prima dell'isNaN.
    Direi che dovresti iniziare a ripulire prima il codice.
    N.B. siccome dichiari e inizializzi la variabile controllo con false ad inizio funzione, e il suo valore diventa true soltanto se tutti gli if non sono verificati, non c'è bisogno di riassegnargli ogni volta il false.
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  6. #6
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    azz..! maledette parentesi viva python lol

    grazie..effettivamente mi chiedevo come mai in altre pagine, funzioni praticamente identiche fossero ok
    la variabile controllo l'ho rimossa del tutto

    ad ogni modo con questo:
    codice:
        if(!isNaN(document.form1.presentatore.value)){
            alert('Nel campo PRESENTATORE non sono ammessi valori numerici.\nIl form non può essere inviato.');
            return false;
        }
    valuta la condizione come TRUE anche se il campo è vuoto..farò come diceva andrea (ps. il sito non è pubblicato)

    invece, ho un'altra cosa da chiedere.
    mi interessa inserire questo

    codice:
    if( giorni > (fine - inizio) ){
            alert('Attenzione: il valore di GIORNI non va bene.');
            return false;
        }
    dove GIORNI è un intero e io voglio essere sicuro che non sia maggiore del numero (intero) di giorni fra inizio (date) e fine (date)
    come posso estrarre dalla differenza dlele date, il numero di giorni fra esse?

    ciao e grazie di nuovo
    L.

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Devi usare oggetto date() cerca in rete ci sono script già pronti
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    grazie ora cerco

    ciao

    l.

  9. #9
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    risolto il problema dei confronti fra date con delle funzioni apposite (per via del formato), per quanto riguarda il problema della form vuota, ho inserito un altro if statement che controlla se il valore è 0.

    ciao e grazie

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.