scusate il titolo un pò demente, ma non sapevo come sintetizzare il concetto.
ho uno scritp che deve aggiungere delle righe in una tabella in modo condizionale (NO, non è il solito discorso).
qui ho una tabella con un numero fisso di RIGHE. raggiunta l'ultima cella, se serve, al press del tasto enter devono essere aggiunte altre righe.
funziona bene con FF.
con IE raggiunto il limite di 10 righe, ne aggiunge altre 2 -come previsto- e poi lo script smette di funzionare.
se mi posiziono nell'ultima cella e provo a premere enter, NON fa più nulla
perchè??
codice:
function evalHP(e, val, id){
var characterCode
if(e && e.which){
e = e
characterCode = e.which
}
else{
e = window.event
characterCode = e.keyCode //IE
}
if(characterCode == 13){ //ENTER
var el = document.getElementById(id);
el.style.fontWeight = 'bold';
el.style.backgroundColor = 'transparent';
el.style.textAlign = 'center';
el.style.border = '0';
el.style.color = '#FF0000';
r = id.split('_');
let = r[1];
n_i = r[3];
if(n_i >= 10){ //se sei alla 10° riga, creano altre 2
for(i=1;i<3; i++){
var colSX = document.createElement("TD");
nid= parseInt(r[3])+i;
colSX.setAttribute('id',"td_"+let+"_"+r[2]+"_"+nid);
colSX.style.fontSize ='8pt';
var colDX = document.createElement("TD");
var inp = document.createElement("INPUT");
inp.style.border = '0px';
inp.setAttribute('size', 8);
id_inp = 'inp_'+let+"_"+r[2]+"_"+nid;
inp.setAttribute('id',id_inp);
if(bro == 'moz'){
inp.setAttribute('class','piccolo');
inp.setAttribute('onkeypress', 'evalHP(event, this.value, this.id)');
}
if(bro == 'ie'){
inp.setAttribute('className','piccolo');
inp.onkeydown = 'evalHP(event, this.value, this.id)';
}
colDX.appendChild(inp);
var riga = document.createElement("TR");
riga.appendChild(colSX);
riga.appendChild(colDX);
document.getElementById('tbd_'+let).appendChild(riga);
document.getElementById('tbl_'+let).appendChild(document.getElementById('tbd_'+let));
}
}
nprev = parseInt(r[3])-1;
nnext = parseInt(r[3])+1;
nNnext = parseInt(r[3])+2;
id_next = 'inp_'+let+"_"+r[2]+"_"+nnext;
id_Nnext = 'inp_'+let+"_"+r[2]+"_"+nNnext;
id_nprev = 'inp_'+let+"_"+r[2]+"_"+nprev;
id_td = 'td_'+let+"_"+r[2]+"_"+n_i;
if(document.getElementById(id_nprev))num = document.getElementById(id_nprev).value;
else num = document.getElementById("MAX_"+id_nprev).value;
if(!document.getElementById("ck_pf"+let).checked){
document.getElementById(id_next).value = num - val;
document.getElementById("evalHP_"+let).value = num - val;
if(bro == 'moz') document.getElementById(id_td).innerHTML = "<font style='font-size: 8pt;'>Danni</font>";
if(bro == 'ie'){
var otxt = document.createTextNode("Danni");
document.getElementById(id_td).appendChild(otxt);
}
}
else{
document.getElementById(id_next).value = parseInt(num) + parseInt(val);
document.getElementById(id).style.color = '#339966';
document.getElementById("evalHP_"+let).value = parseInt(num) + parseInt(val);
if(bro == 'moz') document.getElementById(id_td).innerHTML = "<font style='font-size: 8pt;' />Cura</font>";
if(bro == 'ie'){
var otxt = document.createTextNode("Cura");
document.getElementById(id_td).appendChild(otxt);
}
document.getElementById("ck_pf"+let).checked = false;
}
document.getElementById(id_next).style.textAlign = 'center';
document.getElementById(id_next).style.border = '0';
document.getElementById(id_Nnext).focus();
return false
}
else{
return true
}
...
non rileva manco più la pressione su enter!