Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    disabilitare tasto invio

    ciao a tutti
    volevo chiedervi come faccio a disabilitare il tasto invio durante l'esecuzione di uno script.
    Ossia io ho lo script con alcuni alert, ma durante lo svolgersi di questi alert, voglio togliere all'utente la possibilità di premere il tasdto invio; Sò che c'è l'opzione :
    (event.keyCode == 13)
    ma non riesco a farlo funzionare..
    Per fare un esempio banale
    Se ho un ciclo del tipo

    for (var i=0;i<=10;i++)
    alert(i)

    e vorrei verificare anche il tasto invio da tastiera come faccio?
    Ho provato a fare

    for (var i=0;i<=10;i++){
    if (event.keyCode == 13)
    alert("Invio disabilitato");
    alert(i);
    }
    ma c'è qualcosa di sbagliato, perchè non me lo esegue

    a presto

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Un evento viene introdotto da un particolare "attributo" nel tag:

    Ad esempio, se vuoi catturare l'evento in un form:

    <form name="..." action="..." onkeypress="catturaev();">

    Poi in uno script ci deve essere la funzione catturaev() che cattura l'evento e lo tratta in maniera opportuna:
    codice:
    function catturaev() { // solo per IE
      if (event.keyCode == 13) {
        alert("Invio disabilitato");
        return false;
      } else return true;
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    infatti se io creo uno script a se e lo richiamo da un form funziona;
    Il dilemma che ho è nel fatto che devo fare la verifica dell'evento da tastiera mentre un'altro script è in esecuzione !!

    Come ti ho fatto l'esempio nel post precedente, come faresti, se hai una serie di alert, a controllare gli eventi da tastiera per tutta l'esecuzione dello script ?

    Ossia, eseguire il controllo della tastiera mentre lo script è in esecuzione ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non puoi disabilitare il tasto in qualsiasi posizione sei.

    Devi concentrarti su un oggetto (o piu` di uno, ma inizia con uno intanto). Alcuni oggetti su cui puoi applicare l'evento sono:
    body (tutta la pagina), form, campo, link, ...

    Se puoi vuoi che la disabilitazione avvenga solo durante qualcos'altro, devi settare una variabile ed andare a testarla:
    codice:
    <script ...>
    var abilreturn = true;
    
    function catturaev() { // solo per IE
      if (abilreturn) return true;
      if (event.keyCode == 13) {
        alert("Invio disabilitato");
        return false;
      } else return true;
    }
    
    function tuafunzione() {
      abilreturn = false;
      ... il resto della funzione ...
      abilreturn = true;
    }
    Nella funzione in cui vuoi che il tasto venga disabilitato devi mettere a false la variabile e poi di nuovo a true alla fine.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    adesso ho capito quello che vuoi dire !!

    Cercando in vari documenti avevo letto del fatto di applicare il controllo dell'evento su form, body e altre parti della pagina !!

    Ti vorrei inviare lo script così magari posso spiegarmi meglio; anche perchè in poche parole, io ho una pagina asp con controllo su login e password. All'evento click del mouse, il form viene spedito alla pagina "script.asp" in cui in base a delle opzioni viene deciso cosa fare. Le azioni all'interno di questa pagina sono in javascript; se l'utente sbaglia una volta, gli viene scritto un cookies ed avvertito di non procedere di nuovo; se l'utente insiste, viene eseguito un ciclo che stampa a video degli alert (per scoraggiare l'utente a non riprovarci). quello che volevo fare, era disabilitare i tasti "Invio, Barra spaziatrice e ctrl" in modo da rendere più noiosa la cosa.

    Questo è lo script in javascript
    ---------------------------------------------------------------
    <script language="JavaScript">
    alert ("Ti avevo avvertito di non riprovarci.\nAdesso ne pagherai le conseguenze");
    for (var i=0;i<50;i++)
    alert(i);
    flag1 = confirm("Ti sei stancato di schiacciare il tasto del mouse ??");
    if (flag1 == true) {
    flag2 = confirm("Vuoi terminare questo stupido giochetto ??");
    if (flag2 == true) {
    alert("Mi dispiace, ma ti avevo avvertito di non riprovarci.\nTi farò tribulare ancora un po, giusto per essere\nsicuro che non ci riproverai\");
    for (var i=51;i<300;i++)
    alert(i);
    } else {
    alert("Allora vuoi proprio farti male da solo. Come preferisci");
    for (var i=51;i<500;i++)
    alert(i);
    }
    } else {
    alert("allora si vede che hai del tempo da perdere.\n ----- Buona permanenza -----");
    for (var i=51;i<300;i++)
    alert(i);
    }
    window.close();
    </script>
    -------------------------------------------------------------------

    Spero che possa capire esattamente cosa voglio fare.
    L'idea di impostare una variabile a false per tutto lo script è un'ottima idea, ma come la posso implementare all'interno di questo script ?

    Ti ringrazio molto per l'aiuto

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Questo è lo script in javascript:
    codice:
    <script language="JavaScript" type="text/javascript">>
    var abilreturn = true;
    
    function catturaev() { // solo per IE
      if (abilreturn) return true;
      if (event.keyCode == 13) {
        alert("Invio disabilitato");
        return false;
      } else return true;
    }
    
    function noioso() {
      abilreturn = false;
      alert ("Ti avevo avvertito di non riprovarci.\nAdesso ne pagherai le conseguenze");
      for (var i=0;i<50;i++) 
        alert(i);
      var flag1 = confirm("Ti sei stancato di schiacciare il tasto del mouse ??");
      if (flag1 == true) {
        var flag2 = confirm("Vuoi terminare questo stupido giochetto ??");
        if (flag2 == true) {
          alert("Mi dispiace, ma ti avevo avvertito di non riprovarci.\nTi farò tribulare ancora un po, giusto per essere\nsicuro che non ci riproverai\");
          for (var i=51;i<300;i++)
            alert(i);
        } else { 
          alert("Allora vuoi proprio farti male da solo.  Come preferisci");
          for (var i=51;i<500;i++)
            alert(i);
          }
        } else {
            alert("allora si vede che hai del tempo da perdere.\n ----- Buona permanenza -----");
            for (var i=51;i<300;i++)
              alert(i);
        }
      abilreturn = true;
      return true;
    }
    </script>
    Poi devi far partire l'evento (con uncodice simile a quello che ti ho dato prima, prova a metterlo nel tag <body> ).

    E devi far partire il tuo programma, non so su che evento o bottone, ad esempio:
    se ti annoi clicca qui

    Non so se ho ben interpretato cosa vuoi fare.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    ti descrivo la struttura di questa parte del sito:

    index.asp; nell'index c'è un link che, all'evento click del mouse, apre una nuova finestra dove viene caricata la pagina "Script.html"

    Nella pagina "Script.html c'è un piccolo form con 2 campi ed un bottone; ossia campo "login" - "password" - "bottone di invio".

    Alla pressione del tasto invio, viene controllata la validità dei campi tramite funzione javascript (ossia se il campo è vuoto oppure no). Se i campi sono stati compilati, il form spedisce i valori ad uno script ("script.asp") che in base alla correttezza dei dati, consente all'utente di entrare, oppure no.
    Lo script "script.asp" non ha nessun elemento html, infatti non è una pagina html con dei contenuti, essa ha il solo compito di controllare i dati inseriti dall'utente con quelli contenuti nel db e, se sono sbagliati, asp scrive un cookies sulla macchina user (questo per evitare che un utente inizi a provare ad inserire login e password continuamente). La struttura del file asp è:

    Controllo login & password
    se sono corretti redirigi alla pagina corretta
    altrimenti se l'utente è recidivo
    esegui lo script noioso()
    altrimenti esegui lo script di avvertimento con un solo alert

    Questa è diciamo la struttura del file script.asp

    Come vedi, non c'è codice html, ne body; solo codice

    Però mentre scrivevo stavo pensando una cosa !!
    Che tu sappia, sarebbe possibile scrivere una funzione sotto e richiamarla subito sopra ?
    Ossia
    per esempio
    <script language="Javascript">
    noioso();

    function noioso(){
    ..istruzioni ..
    }
    </script>
    Credi che sia possibile ?

    Dimmi tu

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Una pagina DEVE contenere codice HTML.

    Nella pagina minima il codice del body e`:
    <body>& nbsp;</body>

    Quindi un oggetto c'e`: e` il body (altrimenti detto document da JS)

    Su tale oggetto hai l'evento onload, che puoi usare:
    <body onload="funzione();">

    Comunque in JS non si puo` chiamare una funzione PRIMA di definirla (JS e` interpretato, non compilato), ma si puo` chiamarla DOPO:

    function noioso() {
    ...
    ...
    }
    noioso();
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.