codice:document.writeln("<table class=bordoTabellaTest border=0 cellpadding=0 cellspacing=1 width=100%>"); document.writeln(" <tr>"); document.writeln(" <td class=body valign=top>"); document.writeln(" <input type=text name='campoA0' onFocus='mustMoveFocus=true;currPos=0;' onBlur='mustMoveFocus=false;' maxlength=30 size=30>"); document.writeln(" <input type=text name='campoB0' onFocus='mustMoveFocus=true;currPos=0;' onBlur='mustMoveFocus=false;' maxlength=30 size=30>"); document.writeln(" <input type=text name='campoC0' onFocus='mustMoveFocus=true;currPos=0;' onBlur='mustMoveFocus=false;' maxlength=30 size=30>"); document.writeln(" <select name='campoD0' onFocus='mustMoveFocus=true;currPos=0;' onBlur='mustMoveFocus=false;'><OPTION value=1>Uno<OPTION VALUE=2>Due</SELECT>"); document.writeln(" <input type=text name='campoE0' onFocus='mustMoveFocus=true;currPos=0;' onBlur='mustMoveFocus=false;molt0(this.form);' maxlength=30 size=5>"); document.writeln(" <input type=text name='campoF0' onFocus='mustMoveFocus=true;currPos=0;' onBlur='mustMoveFocus=false;molt0(this.form);' maxlength=30 size=5>"); document.writeln(" <input type=text name='campoG0' onFocus='mustMoveFocus=true;currPos=0;' onBlur='mustMoveFocus=false;' maxlength=30 size=5>"); document.writeln(" <input type=button onClick='deleteLine(0);' value='Cancella'>"); document.writeln(" <div id=divDescription1></div></td>"); document.writeln(" </td>"); document.writeln(" </tr>"); document.writeln("</table>"); document.writeln("Usando 'freccia su' o 'freccia giù' puoi muoverti fra le varie righe. "); document.onkeyup = keyUp; var html=''; var mustMoveFocus=false; var currPos=0; var numLine=0; //numero di linee presenti (0 vuol dire che esiste sono la linea iniziale) function setFormName(testForm){ formName=testForm; } function molt0(f) { c1=parseFloat("0"+f.campoE0.value); c2=parseFloat("0"+f.campoF0.value); f.campoG0.value=c1*c2; } function molt(f,g) { c1=parseFloat("0"+f.elements['campoE'+g].value); c2=parseFloat("0"+f.elements['campoF'+g].value); f.elements['campoG'+g].value=c1*c2; } function addInsertLine(s){ //aggiunge una linea in fondo (se la penultima cella è piena) num=numLine+1; if(!eval("document.getElementById('divDescription"+(num)+"').innerHTML!=''")){ //evito che vengano cancellate le celle già create se torno in una cella all'inizio e scateno un evento che richiama questa funzione: perderei i dati già inseriti if(eval("document."+formName+".campoA"+(num-1)+".value")!='' || eval("document."+formName+".campoB"+(num-1)+".value")!='' || eval("document."+formName+".campoC"+(num-1)+".value")!='' || eval("document."+formName+".campoE"+(num-1)+".value")!='' || eval("document."+formName+".campoF"+(num-1)+".value")!='' || eval("document."+formName+".campoG"+(num-1)+".value")!=''){ //se è stato inserito qualcosa mostro la nuova riga, altrimenti no html=" <input type=text name='campoA"+num+"' onFocus='mustMoveFocus=true;currPos="+num+";' onBlur='mustMoveFocus=false;' maxlength=30 size=30>"; html+=" <input type=text name='campoB"+num+"' onFocus='mustMoveFocus=true;currPos="+num+";' onBlur='mustMoveFocus=false;' maxlength=30 size=30>"; html+=" <input type=text name='campoC"+num+"' onFocus='mustMoveFocus=true;currPos="+num+";' onBlur='mustMoveFocus=false;' maxlength=30 size=30>"; html+=" <SELECT name='campoD"+num+"' onFocus='mustMoveFocus=true;currPos="+num+";' onBlur='mustMoveFocus=false;'><OPTION value=1>Uno<OPTION VALUE=2>Due</SELECT>"; html+=" <input type=text name='campoE"+num+"' onFocus='mustMoveFocus=true;currPos="+num+";' onBlur='mustMoveFocus=false;molt(this.form,\""+num+"\");' maxlength=30 size=5>"; html+=" <input type=text name='campoF"+num+"' onFocus='mustMoveFocus=true;currPos="+num+";' onBlur='mustMoveFocus=false;molt(this.form,\""+num+"\");' maxlength=30 size=5>"; html+=" <input type=text name='campoG"+num+"' onFocus='mustMoveFocus=true;currPos="+num+";' onBlur='mustMoveFocus=false;' maxlength=30 size=5>"; html+=" <input type=button onClick='deleteLine("+num+");' value='Cancella'>"; html+=" <div id=divDescription"+(num+1)+"></div>\n"; eval("document.getElementById('divDescription"+num+"').innerHTML=html"); //alert(num+"\n"+eval("document.getElementById('divDescription"+num+"').innerHTML")); numLine++; } } } function deleteInsertLine(){ //toglie una linea in fondo (se la penultima è vuota) for(i=numLine;i>0;i--){ if((eval("document."+formName+".campoA"+(i)+".value")=='' && eval("document."+formName+".campoB"+(i)+".value")=='' && eval("document."+formName+".campoC"+(i)+".value")=='' && eval("document."+formName+".campoE"+(i)+".value")=='' && eval("document."+formName+".campoF"+(i)+".value")=='' && eval("document."+formName+".campoG"+(i)+".value")=='') && (eval("document."+formName+".campoA"+(i-1)+".value")=='' && eval("document."+formName+".campoB"+(i-1)+".value")=='' && eval("document."+formName+".campoC"+(i-1)+".value")=='' && eval("document."+formName+".campoE"+(i-1)+".value")=='' && eval("document."+formName+".campoF"+(i-1)+".value")=='' && eval("document."+formName+".campoG"+(i-1)+".value")=='')){ eval("document.getElementById('divDescription"+(i)+"').innerHTML=''"); //alert (eval("document.getElementById('divDescription"+(i)+"').innerHTML")+"\n"+eval("document."+formName+".campoA"+(i-2)+".value")); //alert(i+"\n"+eval("document.getElementById('divDescription"+(i)+"').innerHTML")); numLine--; } else break; } } function keyUp(UpEvents){ //gestione degli eventi da tastiera //aggiunta di nuove righe //spostamento fra le varie celle if (!document.all) key=UpEvents.which; else key=window.event.keyCode; if(mustMoveFocus){ //spostamenti fra le varie celle if (key == 38){ //up if(currPos!=0) eval("document."+formName+".campoA"+(currPos-1)+".focus()"); } else if (key == 40 ){ //down if(eval("document."+formName+".campoA"+(currPos+1))) eval("document."+formName+".campoA"+(currPos+1)+".focus()"); } //eliminazione delle linee di troppo else if (key == 8 || key == 46){ //backspace o delete deleteInsertLine(); } //controllo se devo aggiungere una linea o no else addInsertLine(currPos+1); } } function insertOption(optionTextA,optionTextB,optionTextC,optionTextE,optionTextF,optionTextG){ n=0; optionCode=''; while(eval("document."+formName+".campoA"+n)){ if(eval("document."+formName+".campoA"+n+".value")=='' && eval("document."+formName+".campoB"+n+".value")=='' && eval("document."+formName+".campoC"+n+".value")==''){ eval("document."+formName+".campoA"+n+".value=optionTextA"); eval("document."+formName+".campoB"+n+".value=optionTextB"); eval("document."+formName+".campoC"+n+".value=optionTextC"); eval("document."+formName+".campoE"+n+".value=optionTextE"); eval("document."+formName+".campoF"+n+".value=optionTextF"); eval("document."+formName+".campoG"+n+".value=optionTextG"); break; } n++; } addInsertLine(n+1); } function deleteLine(numLineToDelete){ for(i=numLineToDelete;i<numLine-1;i++){ eval("document."+formName+".campoA"+(i)+".value=document."+formName+".campoA"+(i+1)+".value"); eval("document."+formName+".campoB"+(i)+".value=document."+formName+".campoB"+(i+1)+".value"); eval("document."+formName+".campoC"+(i)+".value=document."+formName+".campoC"+(i+1)+".value"); eval("document."+formName+".campoE"+(i)+".value=document."+formName+".campoE"+(i+1)+".value"); eval("document."+formName+".campoF"+(i)+".value=document."+formName+".campoF"+(i+1)+".value"); eval("document."+formName+".campoG"+(i)+".value=document."+formName+".campoG"+(i+1)+".value"); } eval("document."+formName+".campoA"+(i)+".value=''"); eval("document."+formName+".campoB"+(i)+".value=''"); eval("document."+formName+".campoC"+(i)+".value=''"); eval("document."+formName+".campoE"+(i)+".value=''"); eval("document."+formName+".campoF"+(i)+".value=''"); eval("document."+formName+".campoG"+(i)+".value=''"); deleteInsertLine(); }

Rispondi quotando