conteggio caratteri variabile

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ho due campi di testo in cui in (es) nel primo devo scrivere al massimo 10 caratteri, nel secondo 7.
scopiazzando una funzione js l'ho così modificata (prima era Conta() e var massimo=10)

inizio a scrivere nel campo1 e tutto funziona (a 10 mi ferma con alert)
passo al campo2 e mi dice che ho gia scritto 7 caratteri, ripetendo porta a 7 i caratteri dell'1 e a 7 sul campo2 mi ferma

al contrario se inizio a scrivere sul campo2 e poi sull'1 tutto funziona regolarmente
dove sbaglio:confused:?

HTML:
<html>
<head>
<title>prova Conta caratteri variabile</title>
<script>
function Conta(numCar)
{
	document.form1.contaF1.value = document.form1.Dfoto1.value.length;
	document.form1.contaF2.value = document.form1.Dfoto2.value.length;
	var massimo = numCar;
	if (document.form1.Dfoto1.value.length > massimo)
	{
		alert("Massimo " + massimo + " caratteri!");
		document.form1.Dfoto1.value = document.form1.Dfoto1.value.substr(0, massimo);
		document.form1.contaF1.value = massimo;
	}
	if (document.form1.Dfoto2.value.length > massimo)
	{
		alert("Massimo " + massimo + " caratteri!");
		document.form1.Dfoto2.value = document.form1.Dfoto2.value.substr(0, massimo);
		document.form1.contaF2.value = massimo;
	}
}
</script>
</head>
<body>
<form name="form1" action="" method="post">
<textarea name="Dfoto1" cols="42" rows="6" id="Dfoto1" onKeyUp="Conta(10)"></textarea>
<input name="contaF1" type="text" class="conteggio" value="0" size="3" maxlength="3" readonly>
<br>
<textarea name="Dfoto2" cols="42" rows="6" id="Dfoto2" onKeyUp="Conta(7)"></textarea>
<input name="contaF2" type="text" class="conteggio" value="0" size="3" maxlength="3" readonly>
</form>
</body>
</html>

:hammer:
 
Gianni, considerando che l'articolo di riferimento penso sia mio :) ho prestato particolarmente cura al caso (wow) e francamente di errori non ne ho trovati, è molto strano.

Fatto stà che ho tagliato la testa a quella povera bestia del toro ed ho risolto con eval come nell'esempio che segue:

HTML:
<html>
<head>
<title>prova Conta caratteri variabile</title>
<script>
function Conta(idTxt, numCar)
{
	eval("document.form1.contaF" + idTxt + ".value = document.form1.Dfoto" + idTxt + ".value.length");
	var massimo = numCar;
	if (eval("document.form1.Dfoto" + idTxt + ".value.length > massimo"))
	{
		alert("Massimo " + massimo + " caratteri!");
		eval("document.form1.Dfoto" + idTxt + ".value = document.form1.Dfoto" + idTxt + ".value.substr(0, massimo)");
		eval("document.form1.contaF" + idTxt + ".value = massimo");
	}
}
</script>
</head>
<body>
<form name="form1" action="" method="post">
<textarea name="Dfoto1" cols="42" rows="6" id="Dfoto1" onKeyUp="Conta(1, 10)"></textarea>
<input name="contaF1" type="text" class="conteggio" value="0" size="3" maxlength="3" readonly>
<br>
<textarea name="Dfoto2" cols="42" rows="6" id="Dfoto2" onKeyUp="Conta(2, 7)"></textarea>
<input name="contaF2" type="text" class="conteggio" value="0" size="3" maxlength="3" readonly>
</form>
</body>
</html>

A me funziona, fammi sapere se va bene a che a te.

Un saluto!
 
ciao luca
grazie
sembrerebbe di si
comunque se ho dei problemi riposto e riposto e riposto......:fonzie:

a proposito di tori (poveretti) ricordarti garcia lorca

alle cinque de la tarte
quattro tori castigliani
con le p...e ciondoloni
fanno ingresso nell'arena
:hammer:
 
ciao luca
grazie
sembrerebbe di si
comunque se ho dei problemi riposto e riposto e riposto......:fonzie:

Certo, fammi sapere ;)

a proposito di tori (poveretti) ricordarti garcia lorca

Immagino sia un torero finito male per "mano" di un toro, vero?

Io faccio sempre il tifo per il toro. Mi si perdoni il termine che non uso mai sul forum, ma la corrida è davvero un gioco del cazzo.
 
ciao luca
come vedi non mi faccio attendere, ma non per un malfunzionamento ma per una delucidazione
posso modificare:

function Conta(idTxt, numCar)
{
eval("document.form1.contaF" + idTxt + ".value = document.form1.Dfoto" + idTxt + ".value.length");
var massimo = numCar;

in

function Conta(idForm, idTxt, numCar)
{
eval("document.form"+idForm+".contaF" + idTxt + ".value = document.form1.Dfoto" + idTxt + ".value.length");
var massimo = numCar;
........

svincolandomi dal nome del form? e quindi scrivere il js su esterno richiamandolo col classico ....src="conaCaratteri.js".... ?

(dopo php sto iniziando ora con js)


p.s.
anche io tifo per il toro (e per la ferrari) e penso/spero che il forum ti perdoni per l'adeguatissimo termine
ciao
 
Ciao Gianni, in linea di massima si, puoi, ma vedo che il tuo form si chiama sempre form1. Ti conviene parametrizzare la funzione anche con un "ID" del nome del form. La parametrizzazione funziona come in PHP e qualsiasi altro linguaggio :)

Ciao!
 

Discussioni simili