Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133

    conoscere il tasto premuto da un utente in una textarea

    come da titolo, c'è un modo per "catturare" la cattura dei tasti in una textarea? mi spiego meglio, nella textarea ho messo una funzione javascript associata all'evento onkeypress, e vorrei sapere come posso, all'interno di questa funzione, controllare che tasto è stato premuto.

    grazie.

  2. #2
    event.keyCode ti restituisce il codice del tasto premuto.
    Visual Basic e Dintorni
    Blog sullo sviluppo Web in generale

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133
    basta usarlo così, tipo if(event.keyCode== ...), oppure richiede una sintassi particolare?

    e come faccio a sapere a quale codice corrispondono i vari tasti, compresi quelli non letterali (invio, backspace...)?

  4. #4
    la sintassi è quella che hai scritto tu,
    qui trovi una lista di keycodes KeyCodes

    cmq con una ricerca su google per javascript keycodes trovi molte informazioni.
    Visual Basic e Dintorni
    Blog sullo sviluppo Web in generale

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133
    thank you very grazie!

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133
    hmm... ho provato a fare qlc del tipo if(event.keyCode==8) ma nn succede niente...

    devo forse passare qualche parametro alla funzione in cui cerco di riconoscere il tasto?

  7. #7
    ti posto il codice che uso io:
    codice:
            function CheckKey() {
                if (event.keyCode==13) {
                    alert('invio');
                }
            }
    questa è la funzione che richiamo sull'evento onkeyup della textarea
    codice:
    <input type="textarea" id="ciao" onkeyup="return CheckKey()"></textarea>
    ti dovrebbe funzionare
    Visual Basic e Dintorni
    Blog sullo sviluppo Web in generale

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133
    ma bisogna registrare un qualche tipo di event-handler o cose simili? guarda, questa è la funzione che sto cercando di far funzionare...:

    codice:
    function aggiornaCaratteriResidui()
        {
            if(document.MI.comitato_gestione.value.length == 1600)
            {
                alert('Hai raggiunto il limite di caratteri disponibili.');
                return false;
            }
            document.getElementById('comitato gestione').value = 1600-document.MI.comitato_gestione.value.length;
    
            if(document.MI.obiettivi_formativi.value.length == 1600)
            {
                alert('Hai raggiunto il limite di caratteri disponibili.');
                return false;
            }
            document.getElementById('obiettivi formativi').value = 1600-document.MI.obiettivi_formativi.value.length;
    
            if(document.MI.conoscenze_richieste.value.length == 3500)
            {
                alert('Hai raggiunto il limite di caratteri disponibili.');
                return false;
            }
            document.getElementById('conoscenze richieste').value = 3500-document.MI.conoscenze_richieste.value.length;
    
            if(document.MI.conoscenze_consigliate.value.length == 3500)
            {
                alert('Hai raggiunto il limite di caratteri disponibili.');
                return false;
            }
            document.getElementById('conoscenze consigliate').value = 3500-document.MI.conoscenze_consigliate.value.length;
    
            if(document.MI.prova_finale.value.length == 1600)
            {
                alert('Hai raggiunto il limite di caratteri disponibili.');
                return false;
            }
            document.getElementById('prova finale').value = 1600-document.MI.prova_finale.value.length;
    
            if(document.MI.ambiti_occupazionali.value.length == 1600)
            {
                alert('Hai raggiunto il limite di caratteri disponibili.');
                return false;
            }
            document.getElementById('ambiti occupazionali').value = 1600-document.MI.ambiti_occupazionali.value.length;
    
            if(document.MI.ordinamento_didattico.value.length == 1600)
            {
                alert('Hai raggiunto il limite di caratteri disponibili.');
                return false;
            }
            document.getElementById('ordinamento didattico').value = 1600-document.MI.ordinamento_didattico.value.length;
    
            return true;
        }
    che in pratica, ogni volta che si preme un tasto in una delle 7 textarea della pagina, controlla che nn si superi il limite per quella textarea e poi aggiorna il campo testo contenente il numero di caratteri sinora usati...

    io vorrei aggiungere, all'interno dell'if, un controllo perchè se si arriva al limite di caratteri con questo codice dopo ogni tasto che premi (backspace compreso), ti da la schermata di errore e non cancella nulla, quindi devo fare in modo che se si preme backspace si possano cancellare i caratteri extra... :master:

    ho messo, tanto per vedere se funziona, qualcosa del tipo

    codice:
    var tasto = window.event.keyCode;
    alert(tasto);
    ma l'alert non parte neppure! HELP!

    aggiungo una nuova domanda: esiste in javascript una funzione tipo il substr del linguaggio C, che consenta di tagliare una parte di stringa?

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133
    ho provato la tua funzione e non funziona! gioco di parole a parte, a cosa può essere dovuto? al browser che uso (firefox)?

  10. #10
    non so, non credo. l'ho provata con opera e funziona (opera dovrebbe essere più simile a firefox che a iexplorer).

    Ti posto la pagina che ho usato per il test
    Codice PHP:
    <html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
    <
    title>Untitled 1</title>
    <
    script type="text/javascript" language="javascript">
        function 
    CheckKey() {
          if (
    event.keyCode==13) {
                    
    alert('invio');
                }
            }
    </script>
    </head>

    <body>
    <div>
    <input type="textarea" id="ciao" onkeyup="return CheckKey()"></textarea>
    </div>
    </body>

    </html> 
    Visual Basic e Dintorni
    Blog sullo sviluppo Web in generale

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.