Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    decrementare caratteri disponibili da 2 campi input, non da 1 solo

    ho un campo input chiamato "incisione" in cui uno inserisce del testo.
    deve inserire al max 80 carattere, e c'e' gia' una funzione che in tempo reale gli fa vedere il numero di caratteri disponibili ancora, man mano che scrive.

    fin qui tutto bene.

    il problema e' che devo avere un secondo campo input chiamato "incisione2", e il controllo dei caratteri restanti deve essere fatto sia sul primo campo input, che su questo nuovo...

    come posso fare ?

    grazie

    ecco il codice :

    codice:
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
    
    <script ID="clientEventHandlersJS" LANGUAGE="javascript">
    <!--
    
    function calcCharLeft(f) {
      lenUSig = f.lenSSig.value
      var totcaratteri = f.caratteri_disponibili_max.value
      var totcaratteri1 = parseInt(totcaratteri, 10);  
      maxLength = totcaratteri1 - f.lenSysSig.value - lenUSig
            if (f.incisione.value.length > maxLength) {
             f.incisione.value = f.incisione.value.substring(0,maxLength)
          charleft = 0
            } else {
       charleft = maxLength - f.incisione.value.length
      }
            f.caratteri_disponibili.value = charleft
    }
    
    function textKey(f) {
     supportsKeys = true
     calcCharLeft(f)
    }
    
    //-->
    </script>
    
    </HEAD>
    <BODY>
    
    
    
    <form name="form1" action="xxx.asp" method="get">
    
    <input type="hidden" value="80" name="caratteri_disponibili_max" id="caratteri_disponibili_max">
    			
    						
    			Rigo1 : <input type="text" name="incisione" id="incisione" size="40" value="" maxlength="255" onKeyUp="textKey(this.form)">
    
    			
    			Rigo2 : <input type="text" name="incisione2" id="incisione2" size="40" value="" maxlength="255" onKeyUp="textKey(this.form)">
    
    
    									
    			Caratteri disponibili: <input type="text" name="caratteri_disponibili" id="caratteri_disponibili" size="4" value="80" disabled>
    						
    			<input TYPE="HIDDEN" name="lenSSig" value="0">
    			<input TYPE="HIDDEN" name="lenLSig" value="0">
    			<input TYPE="HIDDEN" name="lenSysSig" value="0">
    
    </form>
    
    </BODY>
    </HTML>
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    ... ma quale campo vuoi troncare dai caratteri in eccesso?
    codice:
            if (f.incisione.value.length+f.incisione2.value.length > maxLength) {
    //         f.incisione.value = f.incisione.value.substring(0,maxLength)
          charleft = 0
            } else {
       charleft = maxLength - f.incisione.value.length+f.incisione2.value.length
      }
            f.caratteri_disponibili.value = charleft
    }
    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 L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    ok

    ok ti ringrazio, ora lo provo.

    per il troncamento, in effetti poterbbe essere un problema, in teoria, perche' io farei troncare il secondo campo, pero' se uno prima riempie il primo, poi il secondo, poi vede che gli rimangono 10 caratteri e aggiunge qualcosa sul prima, viene comunque poi troncato il secondo...

    E se invece di troncare automaticamente facciamo apparire un alert di avviso ?
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  4. #4
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    ho fatto ma...

    ho fatto cosi', ma arrivati alla fine della disponibilita' dei caratteri, non mi limita uno dei 2 campi...

    codice:
    function calcCharLeft(f) {
      lenUSig = f.lenSSig.value
      var totcaratteri = f.caratteri_disponibili_max.value
      var totcaratteri1 = parseInt(totcaratteri, 10);  
      maxLength = totcaratteri1 - f.lenSysSig.value - lenUSig
            if (f.incisione.value.length+f.incisione2.value.length > maxLength) {
    			f.incisione.value = f.incisione.value.substring(0,maxLength)
    			charleft = 0
            } else 
    			{
    				charleft = maxLength - (f.incisione.value.length+f.incisione2.value.length);
    			}
            f.caratteri_disponibili.value = charleft
    }
    
    function textKey(f) {
     supportsKeys = true
     calcCharLeft(f)
    }
    
    //-->
    </script>
    
    <form name="form1" action="add2cart.asp" method="get">
    
    <input type="hidden" value="60" name="caratteri_disponibili_max" id="caratteri_disponibili_max">
    
    <table width=400 border=0>
    
    <tr>
    			<td align="left" class="testor">
    			
    			<table border=0 width=85% bordercolor=green>
    			<tr><td class="testo" nowrap>
    			
    						
    			Rigo1 : <input type="text" name="incisione" id="incisione" size="40" value="" maxlength="255" onKeyUp="textKey(this.form)">
    
    			
    			Rigo2 : <input type="text" name="incisione2" id="incisione2" size="40" value="" maxlength="255" onKeyUp="textKey(this.form)">
    
    			
    			
    			</td></tr>
    			<tr><td class="testo">Caratteri disponibili: <input type="text" name="caratteri_disponibili" id="caratteri_disponibili" size="4" value="60" disabled style="background-color:#ffffff; font-size: 7pt; color: #000; font-family: verdana, arial, helvetica, sans-serif">
    			</td></tr>			
    			</table>
    			
    			<input TYPE="HIDDEN" name="lenSSig" value="0">
    			<input TYPE="HIDDEN" name="lenLSig" value="0">
    			<input TYPE="HIDDEN" name="lenSysSig" value="0">
    
    
    			</td>
            </tr>
    
    </table>
    
    </form>
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  5. #5
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    ho trovato, manca pero' una cosa

    ora pero' praticamente non tronca il campo...

    per esempio, io inserisco 30 caratteri nel campo1 e 10 nel campo2.

    ho quindi finito i caratteri a disposizione (sono 40 a disposizione).

    pero' se continuo in uno dei due campi ad inserire caratteri, mi fa inserire comunque caratteri, fino a quando il numero di caratteri du UNO DEI SUE CAMPI e' maggiore di 40...

    cioe' non tiene conto di quelli gia' inseriti per troncare...


    codice:
    <script ID="clientEventHandlersJS" LANGUAGE="javascript">
    <!--
    
    function calcCharLeft(f, nomeControllo) {
    	var controllo = eval("form1." + nomeControllo);
      lenUSig = f.lenSSig.value;
      var totcaratteri = f.caratteri_disponibili_max.value
      var totcaratteri1 = parseInt(totcaratteri, 10);  
      maxLength = totcaratteri1 - f.lenSysSig.value - lenUSig
            if ( (f.incisione.value.length+f.incisione2.value.length) > maxLength) 
            {				
    			controllo.value = controllo.value.substring(0,maxLength)
    			charleft = 0
            } 
            else 
    			{
    				charleft = maxLength - (f.incisione.value.length+f.incisione2.value.length);
    			}
            f.caratteri_disponibili.value = charleft
    }
    
    function textKey(f,nomeControllo1) {
     supportsKeys = true
     calcCharLeft(f,nomeControllo1)
    }
    
    //-->
    </script>
    
    </HEAD>
    <BODY>
    
    
    
    <form name="form1" action="add2cart.asp" method="get">
    
    <input type="hidden" value="40" name="caratteri_disponibili_max" id="caratteri_disponibili_max">
    
    <table width=400 border=0>
    
    <tr>
    			<td align="left" class="testor">
    			
    			<table border=0 width=85% bordercolor=green>
    			<tr><td class="testo" nowrap>
    			
    						
    			Rigo1 : <input type="text" name="incisione" id="incisione" size="100" value="" maxlength="255" onKeyUp="textKey(this.form,'incisione')">
    
    			
    			Rigo2 : <input type="text" name="incisione2" id="incisione2" size="100" value="" maxlength="255" onKeyUp="textKey(this.form,'incisione2')">
    
    			
    			
    			</td></tr>
    			<tr><td class="testo">Caratteri disponibili: <input type="text" name="caratteri_disponibili" id="caratteri_disponibili" size="4" value="40" disabled style="background-color:#ffffff; font-size: 7pt; color: #000; font-family: verdana, arial, helvetica, sans-serif">
    			</td></tr>			
    			</table>
    			
    			<input TYPE="HIDDEN" name="lenSSig" value="0">
    			<input TYPE="HIDDEN" name="lenLSig" value="0">
    			<input TYPE="HIDDEN" name="lenSysSig" value="0">
    
    
    			</td>
            </tr>
    
    </table>
    
    </form>
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998

    Re: ho trovato, manca pero' una cosa

    Io lo farei cosi':
    codice:
    function calcCharLeft(obj) {
    	var f = obj.form;
    	var maxLength = parseInt(f.caratteri_disponibili_max.value, 10);
    	var nowLength = f.incisione.value.length + f.incisione2.value.length;
    	while(nowLength > maxLength) { 
    		obj.value = obj.value.substr(0, obj.value.length-1);
    		nowLength--;
    	}
    	f.caratteri_disponibili.value = maxLength - nowLength;
    }
    
    CON:
    
    	Rigo1 : <input type="text" name="incisione" id="incisione" size="100" value="" maxlength="255" 
    	onKeyUp="textKey(this)">
    
    			
    	Rigo2 : <input type="text" name="incisione2" id="incisione2" size="100" value="" maxlength="255" 
    	onKeyUp="textKey(this)">
    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

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