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