Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832

    Script che funziona bene con FF, e con IE solo un pò di volte

    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!

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    Re: Script che funziona bene con FF, e con IE solo un pò di volte

    Originariamente inviato da lyllo
    scusate il titolo un pò demente
    no

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