Visualizzazione dei risultati da 1 a 7 su 7

Discussione: TextArea

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    TextArea

    ciao a tutti,

    sto cercando di impedire di immettere più di 250 caratteri dentro una text area cosi:
    codice:
    <SCRIPT language="Javascript1.2">
    function check()
    {
    var x=document.form1.elements[0].value;
    var ext=x.length;
    document.form1.elements[1].value=250-ext;
    if (document.form1.elements[1].value<0)
    {
    document.form1.elements[1].value="Err";
    window.alert("Puoi scrivere al massimo 250 caratteri!!!");
    var shorter=x.slice(0,250); 
    document.form1.elements[0].value=shorter;
    document.form1.elements[1].value="0";
    }
    }
    
    </SCRIPT>
    poi la richiamo cosi
    codice:
    <textarea name="descrizione" cols="50" rows="5" id="descrizione"  onKeyUp="check();"></textarea>
    ma non capisco perchè appena digito un carattere nella textarea viene fuori la scritta "250" e non riesco nemmeno a cancellarla

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    I campi di un form di tipo text restituiscono un valore string... e tu lo confronti con un numero.

    if(parseInt(document.form1.elements[1].value)<0)

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ho provato cosi ma non ho risolto :master:

    codice:
    <SCRIPT language="Javascript1.2">
    function check()
    {
    var x=document.form1.elements[0].value;
    var ext=x.length;
    document.form1.elements[1].value=250-ext;
    if(parseInt(document.form1.elements[1].value)<0) 
    {
    document.form1.elements[1].value="Err";
    window.alert("Puoi scrivere al massimo 250 caratteri!!!");
    var shorter=x.slice(0,250); 
    document.form1.elements[0].value=shorter;
    document.form1.elements[1].value="0";
    }
    }
    
    </SCRIPT>

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ho copiato lo script, ho aggiunto questo:

    <form name=form1>
    <textarea onkeyup="check()"></textarea>
    <input type=text>
    </form>

    e non presenta problemi... perlomeno con IE.

    Verifica che non ci siano altri oggetti nella pagina con gli stessi nomi usati nello script, oppure posta tutta la pagina (meglio un link alla stessa gia' pubblicata)

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ho provato anche io in una pagine nuova e funziona ma non capisco perchè in questapagina no :master:
    codice:
    <SCRIPT language="Javascript1.2">
    function check()
    {
    var x=document.form1.elements[0].value;
    var ext=x.length;
    document.form1.elements[1].value=250-ext;
    if(parseInt(document.form1.elements[1].value)<0) 
    {
    document.form1.elements[1].value="Err";
    window.alert("Puoi scrivere al massimo 250 caratteri!!!");
    var shorter=x.slice(0,250); 
    document.form1.elements[0].value=shorter;
    document.form1.elements[1].value="0";
    }
    }
    
    </SCRIPT>
    questo è il form1

    codice:
    <form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1">
        <table align="center">
          <tr valign="middle">
            <td align="right" nowrap class="Stile7"><span class="Stile7">Nome:</span></td>
            <td><div align="left">
              <input name="nome" type="text" value="" size="50" tabindex="1">
            </div></td>
          </tr>
          <tr valign="middle">
            <td align="right" nowrap class="Stile7"><span class="Stile7">Descrizione:</span></td>
            <td><div align="left">
              <textarea name="descrizione" id="descrizione" onkeyup="check()"></textarea>
            </div></td>
          </tr>
          <tr valign="middle">
            <td align="right" nowrap class="Stile7"><span class="Stile7">Peso:</span></td>
            <td><div align="left">
              <input name="peso" type="text" value="" size="10">
              <span class="Stile7">espresso in KB </span></div></td>
          </tr>
          <tr valign="middle">
            <td align="right" nowrap class="Stile7">Collegamento</td>
            <td><div align="left">
              <input name="url" type="text" id="url" value="http://www.miosito.it" size="50">
            </div></td>
          </tr>
          <tr valign="middle">
            <td align="right" nowrap class="Stile7"><INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1024000">
              Miniatura          </td>
            <td>
              <div align="left">
                <input name="UploadedFile" type="file" onChange="document.form1('miniatura').value=this.value.substr(this.value.lastIndexOf('\\')+1)" size="50">
              </div></td>
          </tr>
          <tr valign="middle">
            <td align="right" nowrap class="Stile7"><INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1024000">
            Ingrandimento</td>
            <td><div align="left">
              <input name="UploadedFileing" type="file" onChange="document.form1('ingrandimento').value=this.value.substr(this.value.lastIndexOf('\\')+1)" size="50">
            </div>
          </tr>
          <tr valign="middle">
            <td colspan="2" align="right" nowrap class="Stile7"></td>
          </tr>
          <tr valign="middle">
            <td colspan="2" align="right" nowrap class="Stile7">
              <div align="center"><span class="Stile7">
                <input name="miniatura" type="hidden" id="miniatura">
                <input name="ingrandimento" type="hidden" id="ingrandimento">
                </span>
                <input name="datains" type="hidden" id="datains" value="<?php echo date('Y-m-j') ?>">
                <input type="submit" value="Inserisci">
              </div></td>
          </tr>
        </table>
        <input type="hidden" name="MM_insert" value="form1">
      </form>

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Evidentemente hai aggiunto successivamente alla creazione dell' script un campo al form... e lo hai messo al primo posto, in questo modo hai invalidato l'uso dell'indice agli elementi del form.

    Puoi correggere gli indici da usare:
    codice:
    function check()
    {
    var x=document.form1.elements[1].value;
    var ext=x.length;
    document.form1.elements[2].value=250-ext;
    if(parseInt(document.form1.elements[2].value)<0) 
    {
    document.form1.elements[2].value="Err";
    window.alert("Puoi scrivere al massimo 250 caratteri!!!");
    var shorter=x.slice(0,250); 
    document.form1.elements[1].value=shorter;
    document.form1.elements[2].value="0";
    }
    }
    ma sarebbe meglio fare uso del parametro name:
    codice:
    function check()
    {
    var x=document.form1.elements["descrizione"].value;
    var ext=x.length;
    document.form1.elements["peso"].value=250-ext;
    if(parseInt(document.form1.elements["peso"].value)<0) 
    {
    document.form1.elements["peso"].value="Err";
    window.alert("Puoi scrivere al massimo 250 caratteri!!!");
    var shorter=x.slice(0,250); 
    document.form1.elements["descrizione"].value=shorter;
    document.form1.elements["peso"].value="0";
    }
    }
    </SCRIPT>
    ma, dato che ci sei, anche per snellire il codice stesso:
    codice:
    function check()
    {
    	var f=document.form1;
    	var d=f.elements["descrizione"];
    	var p=f.elements["peso"];
    	var l = 250 - d.value.length;
    	if(l<0) 
    	{
    		p.value="Err";
    		window.alert("Puoi scrivere al massimo 250 caratteri!!!");
    		d.value=d.value.slice(0,250); 
    		l=0;
    	}
    	p.value=l;
    }
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    grazie miile è perfetto!!

    6 sei stato gentilissimo

    (mi daresti una mano qui )

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.