Visualizzazione dei risultati da 1 a 9 su 9

Visualizzazione discussione

  1. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,776
    Bene, ho appena buttato via quello script
    Ho cercato inizialmente di rattopparlo ma mi son reso conto che il meccanismo di funzionamento fa comunque acqua, per cui ho preferito scartarlo a priori.
    Già nello script originale ci sono delle limitazioni di funzionamento e delle piccole falle, a parte la non-compatibilità tra i diversi browser.
    1- il fatto che non si possa utilizzare il copia-incolla potrebbe essere abbastanza limitativo e fastidioso.
    2- il sistema si rompe se si pigia "canc" quando il cursore è a fine riga mentre nella riga successiva è presente un testo che, sommato tra le due righe, supera il limite impostato per le colonne. Le due righe infatti si portano su un'unica riga, fregandosene del limite impostato.

    Ho cercato in giro se ci fosse qualche altro script ma ho trovato ben poco.

    Giusto per tenermi in esercizio ho provato a tirare su qualcosa da zero.
    Qui un esempio:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
      </head>
      <body>
      
        <textarea id="areatesto" name="titolo" cols="50" rows="2" ></textarea>
    
        <script type="text/javascript">
          function TestoLimitato(textarea, colonne, righe){
            var me = this;
            if (colonne<0 || righe<1) return;
            function verificaTesto(){
              RegExp('^.{0,'+(colonne)+'}(\n.{0,'+(colonne)+'}){0,'+(righe-1)+'}$','g').test(textarea.value)
                ? me.value = textarea.value
                : textarea.value = me.value
              ;
            }
            me.value = '';
            textarea.addEventListener('input', verificaTesto);
            verificaTesto();
          }
          
          new TestoLimitato(areatesto, 25, 2);
        </script>
        
      </body>
    </html>
    Giusto qualche precisazioni.

    Si basa sull'evento input, che è supportato dai browser odierni (da IE9 in poi, giusto per chiarire). Non credo abbia senso avere retrocompatibilità per browser archeologici.

    Ho usato una impostazione oop. In sostanza puoi applicare i limiti ad una textarea, creando semplicemente un nuovo oggetto con new TestoLimitato(ElementoTextArea, LimiteColonne, LimiteRighe);

    Il sistema controlla direttamente il valore della textarea tramite regexp. Se il nuovo testo supera il test, allora è normalmente inserito, altrimenti no. Sostanzialmente se non supera il test, sarà considerato il valore precedente.

    E' possibile inserire il testo come meglio si crede, digitandoci dentro o copiaincollando.

    Non ho fatto troppissime prove. Nel caso, fai tu qualche prova, vedi se funziona, se può andarti bene e fammi sapere.
    Buon proseguimento.
    Ultima modifica di KillerWorm; 01-04-2017 a 11:38
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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.