Forse cosi (ma da migliorare)
codice:<html> <head> <title>Untitled</title> <style type="text/css"> <!-- .readonly {background-color:yellow} --> </style> <script language="JavaScript" type="text/javascript"> <!-- var cpVal = 0; var prevCp = ''; var cpAmm = 0; function cambiaValore(anId,unValore) { if (prevCp != '') { document.getElementById(prevCp).value='--'; } // if (prevCp != '') prevCp = anId; document.getElementById(prevCp).value=unValore; cpAmm = unValore; calcolaTotale(); } // function cambiaValore(anId,unValore) function servizio(aCB,unServizio,unValore) { statoCB = aCB.checked; serv = 'servizio'+unServizio; qta = 'quanti'+unServizio; errore = false; if (isNaN(document.getElementById(qta).value)) { alert('Quantita del servizio '+unServizio+' non numercia'); errore = true; } else { if (document.getElementById(qta).value <= 0) { alert('Quantita del servizio '+unServizio+' uguale a 0 o minore di 0'); errore = true; } // if (document.getElementById(qta).value <= 0) } // if (isNaN(document.getElementById(qta).value)) if (errore) { aCB.checked = false; document.getElementById(serv).value='--'; document.getElementById(qta).value=1; return; } // if (errore) if (statoCB) { document.getElementById(serv).value=unValore; } else { document.getElementById(serv).value='--'; document.getElementById(qta).value=1; } // if (statoCB) calcolaTotale(); } // function servizio(statoCB,unServizio,unValore) function calcolaTotale() { oColl = document.getElementsByTagName('INPUT'); tot = 0; for (i=0;i<oColl.length;i++) { curInput = oColl.item(i); if (curInput.type == 'checkbox' && curInput.name.substr(0,2) == 'SA') { serv = 'servizio' + curInput.value; qta = 'quanti' + curInput.value; if (curInput.checked && document.getElementById(serv).value != '--') { tot += parseFloat(document.getElementById(serv).value) * parseFloat(document.getElementById(qta).value); } // if (curInput.checked && document.getElementById(serv).value != '--') } // if (curInput.type == 'checkbox' && curInput.name.substr(0,2) == 'SA') } // for (i=0;i<oColl.length;i++) document.getElementById('totale').value = tot + parseFloat(cpAmm); } // function calcolaTotale() function controllaQta(unServizio) { qta = 'quanti'+unServizio; errore = false; if (isNaN(document.getElementById(qta).value)) { alert('Quantita del servizio '+unServizio+' non numercia'); errore = true; } else { if (document.getElementById(qta).value <= 0) { alert('Quantita del servizio '+unServizio+' uguale a 0 o minore di 0'); errore = true; } // if (document.getElementById(qta).value <= 0) } // if (isNaN(document.getElementById(qta).value)) if (errore) { document.getElementById(qta).value=1; } // if (errore) calcolaTotale(); } //--> </script> </head> <body> <input type="radio" value="1" name="PH" onFocus="cambiaValore('cp1','18.00');"><input class="readonly" type="text" size="6" id="cp1" name="cp1" value="--" readonly> <input type="radio" value="2" name="PH" onFocus="cambiaValore('cp2','36.00');"><input class="readonly" type="text" size="6" id="cp2" name="cp2" value="--" readonly> <input type="radio" value="3" name="PH" onFocus="cambiaValore('cp3','48.00');"><input class="readonly" type="text" size="6" id="cp3" name="cp3" value="--" readonly> <input type="radio" value="4" name="PH" onFocus="cambiaValore('cp4','72.00');"><input class="readonly" type="text" size="6" id="cp4" name="cp4" value="--" readonly> <input type="radio" value="5" name="PH" onFocus="cambiaValore('cp5','45.60');"><input class="readonly" type="text" size="6" id="cp5" name="cp5" value="--" readonly> <hr /> <input type="checkbox" value="1" name="SA" onClick="servizio(this,'1','1800');"> servizio 1 <input class="readonly" type="text" size="6" id="servizio1" name="servizio1" value="--" readonly> <input type="hidden" size="6" id="quanti1" name="quanti1" value="1"> <input type="checkbox" value="2" name="SA" onClick="servizio(this,'2','3360');"> servizio 2 <input class="readonly" type="text" size="6" id="servizio2" name="servizio2" value="--" readonly> <input type="hidden" size="6" id="quanti2" name="quanti2" value="1"> <input type="checkbox" value="3" name="SA" onClick="servizio(this,'3','6000');"> servizio 3 <input class="readonly" type="text" size="6" id="servizio3" name="servizio3" value="--" readonly> <input type="hidden" size="6" id="quanti3" name="quanti3" value="1"> <input type="checkbox" value="4" name="SA" onClick="servizio(this,'4','7200');"> servizio 4 <input class="readonly" type="text" size="6" id="servizio4" name="servizio4" value="--" readonly> Quantità : <input type="text" size="6" onblur="controllaQta('4');" id="quanti4" name="quanti4" value="1"> <hr /> Totale : <input class="readonly" type="text" size="6" name="totale" id="totale" readonly value="0"> </body> </html>

Rispondi quotando