Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454

    [JS] Sono numeri nel textfield?

    Salve ragassuoli,

    pur non essendo bravo in java ho provato a fare una funzione che faccia il seguente:

    -Controlli se nel textfield sono inseriti solo numeri, allora va avanti, altrimenti alert e si blocca.

    -Sia "dinamico" cioé ha la variabile nella funzione che è il nome del form. ora capirete che vi posto il codice:

    codice:
    <script language="javascript">
    
    function ctt(cosa) {
    		if (ctrlnumm(document.+cosa+.som.value)=="0"){
    		window.alert("La somma dev'essere un numero");
    		return;
    	}
    	document.+cosa+.submit();
    }
    function ctrlnumm(numm) { 
       for (var i=0; i<numm.length; i++) { 
          if (numm.substring(i,i+1) == "0" || numm.substring(i,i+1) == "1" || numm.substring(i,i+1) == "2" || numm.substring(i,i+1) == "3" || numm.substring(i,i+1) == "4" || numm.substring(i,i+1) == "5" || numm.substring(i,i+1) == "6" || numm.substring(i,i+1) == "7" || numm.substring(i,i+1) == "8" || numm.substring(i,i+1) == "9") { 
    		return "1";
          } 
       } 
       return "0";
    }
    </script>
    nel form che si chiama ver c'è: onclick="ctt(ver)"
    in quello che si chiama bos c'è: onclick="ctt(bos)"

    Non mi funziona così, va avanti senza capire che non è un numero la F che inserisco nel form.

    Potete aiutarmi? :master:

    PS: Prima di mettere +cosa+ ho provato a metterlo senza + ma non andava neanche quello.

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Per controllare se è un valore è numerico

    codice:
    function isNum(unValore) {
     return isNaN(unValore) ? false : true;
    }
    
    function ctt(unTextField) {
     if (! isNum(unTextField.value)) {
      alert("Valore non numerico");
     }
     aForm = unTextField.parentElement;
     aForm.submit();
    }
    
    <form id="pippo" action="pippo.php" method="post">
     <input type="text" id="t1">
     <input type="button" value="clicca" onclick="ctt(document.getElementById('t1'))">
    </form>
    ovviamente non testato. comunque l'idea c'è.

  3. #3
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Grazie badaze,

    l'ho provato e il controllo lo fa, perfettamente.

    Il problema è che se è numerico, non mi fa il submit. Rimane fermo e basta.

    Forse ho sbagliato qualcosa io.

    Il mio form è il seguente se può essere d'aiuto:
    codice:
    <form action="ban.php" method="post" name="ver" target="_self" id="ver">
    <input name="som" type="text" id="som" size="10">
    <input name="Vai" type="button" id="Vai" value="Vai" onclick="ctt(document.getElementById('som'))">
    </form>
    Lo script l'ho lasciato come me lo hai dato tu, forse dovevo cambiare qualcosa per far inviare il form?

    Dovrebbe farlo:
    codice:
    aForm = unTextField.parentElement;
    aForm.submit();
    no?



    PS: Scusate ma non mi ero reso conto che il messaggio sopra era venuto così lungo da sforare la pagina. Se posso prego i moderatori di modificarlo, altrimenti mi scuso cmq. ^_^

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Con IE 6.0 fa lo submit.

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    </head>
    <body>
    <script language="JavaScript" type="text/javascript">
    <!--
    function isNum(unValore) {
     return isNaN(unValore) ? false : true;
    }
    
    function ctt(unTextField) {
     if (! isNum(unTextField.value)) {
      alert("Valore non numerico");
    	return;
     }
     aForm = unTextField.parentElement;
     alert(aForm.tagName);
     aForm.submit();
    }
    //-->
    </script>
    
    
    <form id="pippo" action="pippo.php" method="post">
     <input type="text" id="t1">
     <input type="button" value="clicca" onclick="ctt(document.getElementById('t1'))">
    </form>
    
    </body>
    </html>
    L'alert che ho aggiunto mostra FORM

  5. #5
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Ok, il tuo funziona come ho visto io stesso e manderebbe anche il form (ma chiaramente non trova la pagina hihihiih).

    Il mio continua a non funzionare e non riesco a capire perché.

    Di seguito ti posto l'intera pagina, forse io non vedo l'errore e tu lo scovi subito!

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="javascript">
    function isNum(unValore) {
     return isNaN(unValore) ? false : true;
    }
    
    function ctt(unTextField) {
     if (! isNum(unTextField.value)) {
      alert("La somma dev'essere numerica!");
      return;
     }
     aForm = unTextField.parentElement;
     aForm.submit();
    }
    </script>
    </head>
    
    <body>
    <div align="center">
        <form action="ban.php" method="post" name="ver" target="_self" id="ver">
          
    
    
            <input name="som" type="text" id="som" size="10">
            
     
            <input name="Vai" type="button" id="Vai" value="Vai" onClick="ctt(document.getElementById('som'))">
          </p>
      </form>
    </div>
    </body>
    </html>

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Hai :
    codice:
    input box -> paragrafo -> form
    Quindi il "padre" dell'input box è il tag p e il padre del tag p è il form.

    prova : aForm = unTextField.parentElement.parentElement;

  7. #7
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Non mi funziona.

    Ma io non posso mettere nella funzione anche il nome del form? Tipo:
    codice:
    function isNum(unValore) {
     return isNaN(unValore) ? false : true;
    }
    
    function ctt(unTextField,aForm) {
     if (! isNum(unTextField.value)) {
      alert("La somma dev'essere numerica!");
      return;
     }
     aForm.submit();
    }
    e poi richiamarlo nell'onlick così:
    codice:
    onclick="ctt(document.getElementById('som'),'var')
    ?

    Lo chiedo perché non mi funziona, però penso che si possano mettere anche due elementi no?

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Guardando il tuo script c'è un'idea migliore .... che uso di solito

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="javascript">
    function isNum(unValore) {
     return isNaN(unValore) ? false : true;
    }
    
    function ltrim(item) { 
    return item.replace(/^\s*/gi,""); 
    } 
    function rtrim(item) { 
    return item.replace(/\s*$/gi,""); 
    } 
    function trim(item) {
     return rtrim(ltrim(item));
    }
    
    function ctt(aForm) {
     a = trim(document.getElementById('som').value);
     if (!isNum(a) || a == ""  ) {
      alert("La somma dev'essere numerica!");
      return false;
     }
     return true;
    }
    </script>
    </head>
    
    <body>
    <div align="center">
        <form action="ban.php" method="post" name="ver" target="_self" id="ver" onsubmit="return ctt(this)">
          
    
    
            <input name="som" type="text" id="som" size="10">
            
     
            <input name="Vai" type="button" id="Vai" value="Vai" onClick="ctt(document.getElementById('som'))">
          </p>
      </form>
    </div>
    </body>
    </html>
    ed in omaggio le funzioni trim, ltrim e rtrim !!!!


  9. #9
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Ok, ti ringrazio ancora, e, sentendomi anche un pò deficiente, devo dirti che ancora non funziona.

    Fa il controllo del numero, e se non è numero si ferma.

    Se invece è numero dovrebbe andare a ban.php, invece non fa nulla. In pratica non fa il submit.

    Grazie ancora e scusa se ti sto facendo diventare scemo

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Beh non ero ancora sveglio sveglio.....

    codice:
    <body>
    <div align="center">
        <form action="ban.php" method="post" name="ver" id="ver" onsubmit="return ctt(this)">
          
    
    
            <input name="som" type="text" id="som" size="10">
            
     
            <input name="Vai" type="submit" id="Vai" value="Vai">
          </p>
      </form>
    </div>
    </body>
    Il pulsante deve essere di tipo submit e l'evento onclick deve essere tolto.

    ooppsss ho tolto anche il target

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