T O P I C R E V I E W |
Northwind |
Posted - 29 Nov 2007 : 18:13:49 Qualcuno sa spiegarmi perch? nei form, i valori generati da un radiobutton tramite l'evento onclick susseguentemente non riescono ad essere letti (parsed) da un'altra funzione?? Mi spiego meglio ... (sic) ho tre radiobutton, che tramite l'evento onclick,(... javacall,if (this.checked){IMPORTODOMINIO.value=70 ; IMPORTOUNATANTUM.value=120 ; IMPORTOSUBDOMINIO.value=0};return somma1()...) generano un importo in alcuni campi testo (p.e.: IMPORTOUNATANTUM, IMPORTOSUBDOMINIO, ...) La medesima funzione di onclick richiama poi una funzione nell'HEAD chiamata somma1() che dovrebbe effettuare una serie di calcoli. Ma l? invece il parse non funziona, dandomi un messaggio di errore del tipo..."IMPORTODOMINIO.value" ? nullo o non ? un oggetto ... Non s? come venirne fuori, [2 ?:-|] le ho provate un p? tutte ma non c'? niente da fare.
Se volete vedere il form : http://www.civites.it/prove/preventivopec.htm
Grazie a chi sapesse indicarmi dove sbaglio.
Tramontana
|
3 L A T E S T R E P L I E S (Newest First) |
s.dav |
Posted - 07 Dec 2007 : 11:13:21 Mandami una mail con il file .dhe e una breve spiegazione del problema e te lo risolvo. |
Northwind |
Posted - 07 Dec 2007 : 08:53:30 Ciao Davide,
grazie della risposta, purtroppo non funziona nessuna delle Tue soluzioni proposte. De facto non riconosce, o meglio non ? capace di leggere nessuno dei campi (IMPORTOPEC.value ....) quando si richiama la funzione somma1() o calcolatotale(). Ho provato con parseInt, parseFloat e getElementByID, ma mi dice sempre che "i campi sono nulli o non sono degli oggetti" ...
riposto la pagina: http://www.civites.it/prove/preventivopec.htm br /
o se preferite il codice html generato da DHE:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Civites Italia - POSTA ELETTRONICA CERTIFICATA</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css"> <meta name="GENERATOR" content="Dynamic HTML Editor v.3.3 - http://www.hexagora.com"> <meta name="KEYWORDS" content="PEC, POSTA ELETTRONICA CERTIFICATA, LEGALMAIL, LEGAL EMAIL, LEGALEMAIL"> <meta name="DESCRIPTION" content="Form calcolo preventivo Pec - Posta Elettronica Certificata"> <meta name="AUTHOR" content="Christian"> <meta name="COPYRIGHT" content="Civites Italia"> <script language="javascript" type="text/javascript"> <!-- var isNS=document.layers?true:false; var isIE=(document.all!=null)||(navigator.userAgent.indexOf('MSIE')!=-1); var isDom2=document.getElementById; var fVers=parseFloat(navigator.appVersion); if (!isDom2 && ((isNS && fVers<4)||(isIE && fVers<4))) alert("Your browser is very old. Please upgrade it if you want to see this page correctly.");
//--> </script> <script language="javascript" type="text/javascript" src="filescalcolapreventivopec/dhwe3x.js"></script>
<SCRIPT LANGUAGE="JavaScript"> // Funzione per la formattazione dei campi valuta <!-- Begin function formatCurrency(num) { num = num.toString().replace(/\|\,/g,''); if(isNaN(num)) num = "0"; sign = (num == (num = Math.abs(num))); num = Math.floor(num*100+0.50000000001); cents = num%100; num = Math.floor(num/100).toString(); if(cents<10) cents = "0" + cents; for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) num = num.substring(0,num.length-(4*i+3))+'.'+ num.substring(num.length-(4*i+3)); return (((sign)?'':'-') + num + ',' + cents); } // End --> </script>
<SCRIPT LANGUAGE="JavaScript"> //costruiamo la formula per il calcolo del importo delle caselle pec <!-- Begin function totalepec(){ num_caselle = parseInt(document.forms[0].NPEC.value,10); if (!(isNaN(document.forms[0].NPEC.value))) { if (document.forms[0].NPEC.value != ""){ if (document.forms[0].NPEC.value <= 10) { xnum1 = parseInt(document.forms[0].NPEC.value,10) IMPORTOPEC = xnum1 * 20 } if ((document.forms[0].NPEC.value >= 11) && (document.forms[0].NPEC.value <= 50)) { xnum1 = parseInt(document.forms[0].NPEC.value,10) IMPORTOPEC = xnum1 * 15 } if ((document.forms[0].NPEC.value >= 51) && (document.forms[0].NPEC.value <= 100)) { xnum1 = parseInt(document.forms[0].NPEC.value,10) IMPORTOPEC = xnum1 * 10 } if ((document.forms[0].NPEC.value >= 101) && (document.forms[0].NPEC.value <= 250)) { xnum1 = parseInt(document.forms[0].NPEC.value,10) IMPORTOPEC = xnum1 * 8 } if (document.forms[0].NPEC.value > 250) { xnum1 = parseInt(document.forms[0].NPEC.value,10) IMPORTOPEC = xnum1 * 6 } document.forms[0].IMPORTOPEC.value = formatCurrency(IMPORTOPEC); } else { IMPORTOPEC = 0,00; alert('Specificare il Numero di Caselle.'); document.forms[0].NPEC.select(); return somma1(); } } } // End --> </script>
<script language="JavaScript" type="text/JavaScript"> <!-- //costruiamo la formula per il calcolo del totale imponibile function somma1() { var form = document.forms["FORMPREVENTIVO"] var A = parseInt(form.IMPORTOPEC.value,10); var B = parseInt(form.IMPORTOSUBDOMINIO.value,10); var C = parseInt(form.IMPORTODOMINIO.value,10); var D = parseInt(form.IMPORTOUNATANTUM.value,10); var F = parseInt(form.IMPORTOLOGO.value,10); var G = parseInt(form.IMPORTOQUOTESPAZIO.value,10); var imponibiletot = (A+B+C+D+F+G)*1; form.IMPONIBILE.value = formatCurrency(imponibiletot); var ivatot = imponibiletot * 0.2; form.IVA.value = formatCurrency(ivatot); return calcolatotale(); }
//costruiamo la formula per il calcolo del totale generale function calcolatotale() { var form = document.forms["FORMPREVENTIVO"]; var A3 = parseInt(form.IMPORTOPEC.value,10); var B3 = parseInt(form.IMPORTOSUBDOMINIO.value,10); var C3 = parseInt(form.IMPORTODOMINIO.value,10); var D3 = parseInt(form.IMPORTOUNATANTUM.value,10); var F3 = parseInt(form.IMPORTOLOGO.value,10); var G3 = parseInt(form.IMPORTOQUOTESPAZIO.value,10); var totalegen = (A3+B3+C3+D3+F3+G3)*1.2; form.TOTALE_GENERALE.value = formatCurrency(totalegen); }
</script>
<link rel="stylesheet" type="text/css" href="filescalcolapreventivopec/preventivopec.css">
</head> <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" alink="#FF0000" vlink="#800080"> <div id="dhecenterdiv1" align="left"> <div id="ldheLabel48" style="position: absolute; left: 33px; top: 893px; width: 543px; height: 30px; text-align: justify;" align="left"> <span class="arial90FFFFFFt">Attivazione dominio ed inserimento Vs. logo aziendale, incluso <br>Pannello di Gestione per caselle e-mail, una tantum: ............................................ Euro 200,00</span></div> <form id="Form1" name="Form1" style="position: absolute; left: 1px; top: 0px;" action="" method="post"> <table border="0" cellspacing="1" cellpadding="0" bgcolor="#000000"><tr><td width="589" height="500" bgcolor="#E3E3E3" valign="top"><table width="575" border="0" cellspacing="0" cellpadding="0"><tr><td><img src="filescalcolapreventivopec/blank.gif" width="5" height="78" border="0" alt=""></td><td><img src="filescalcolapreventivopec/blank.gif" width="56" height="1" border="0" alt=""></td><td><img src="filescalcolapreventivopec/blank.gif" width="189" height="1" border="0" alt=""></td><td><img src="filescalcolapreventivopec/blank.gif" width="88" height="1" border="0" alt=""></td><td><img src="filescalcolapreventivopec/blank.gif" width="104" height="1" border="0" alt=""></td><td><img src="filescalcolapreventivopec/blank.gif" width="42" height="1" border="0" alt=""></td><td><img src="filescalcolapreventivopec/blank.gif" width="90" height="1" border="0" alt=""></td></tr><tr><td><img src="filescalcolapreventivopec/blank.gif" width="1" height="31" border="0" alt=""></td><td></td><td></td><td valign="top"><input type="radio" id="RadioSMART" name="TIPOPEC" onclick="if (this.checked){IMPORTODOMINIO.value=0; IMPORTOUNATANTUM.value=0; IMPORTOSUBDOMINIO.value=0};return somma1();return false;" onmouseout="IMPORTOSUBDOMINIO.value=formatCurrency(IMPORTOSUBDOMINIO.value);IMPORTODOMINIO.value=formatCurrency(IMPORTODOMINIO.value);IMPORTOUNATANTUM.value=formatCurrency(IMPORTOUNATANTUM.value);" value="Smart" checked></td><td valign="top"><input type="radio" id="RadioBUSINESS" name="TIPOPEC" onclick="if (this.checked){IMPORTOSUBDOMINIO.value=50; IMPORTOUNATANTUM.value=0; IMPORTODOMINIO.value=0}; return somma1();return false;" onmouseout="IMPORTOSUBDOMINIO.value=formatCurrency(IMPORTOSUBDOMINIO.value);IMPORTODOMINIO.value=formatCurrency(IMPORTODOMINIO.value);IMPORTOUNATANTUM.value=formatCurrency(IMPORTOUNATANTUM.value);" value="Business"></td><td valign="top"><input type="radio" id="RadioBUSINESSADVANCE" name="TIPOPEC" onclick="if (this.checked){IMPORTODOMINIO.value=70; IMPORTOUNATANTUM.value=120 ; IMPORTOSUBDOMINIO.value=0};return somma1();return false;" onmouseout="IMPORTODOMINIO.value=formatCurrency(IMPORTODOMINIO.value);IMPORTOUNATANTUM.value=formatCurrency(IMPORTOUNATANTUM.value);IMPORTOSUBDOMINIO.value=formatCurrency(IMPORTOSUBDOMINIO.value);" value="Advantage"></td><td></td></tr><tr><td><img src="filescalcolapreventivopec/blank.gif" width="1" height="33" border="0" alt=""></td><td></td><td></td><td></td><td></td><td></td><td valign="top"><input type="text" id="IMPORTOSUBDOMINIO" name="IMPORTOSUBDOMINIO" style="width: 90px; height: 20px;" class="importo" value="0,00" maxlength="7"></td></tr><tr><td><img src="filescalcolapreventivopec/blank.gif" width="1" height="32" border="0" alt=""></td><td></td><td></td><td></td><td></td><td></td><td valign="top"><input type="text" id="IMPORTODOMINIO" name="IMPORTODOMINIO" style="width: 90px; height: 20px;" class="importo" value="0,00" maxlength="7"></td></tr><tr><td><img src="filescalcolapreventivopec/blank.gif" width="1" height="30" border="0" alt=""></td><td></td><td></td><td></td><td></td><td></td><td valign="top"><input type="text" id="IMPORTOUNATANTUM" name="IMPORTOUNATANTUM" style="width: 90px; height: 20px;" class="importo" value="0,00" maxlength="7"></td></tr><tr><td><img src="filescalcolapreventivopec/blank.gif" width="1" height="33" border="0" alt=""></td><td></td><td valign="top"><input type="text" id="NPEC" name="NPEC" style="width: 50px; height: 20px;" class="numero" onchange="totalepec(); return somma1();" value="" maxlength="4"></td><td></td><td></td><td></td><td valign="top"><input type="text" id="IMPORTOPEC" name="IMPORTOPEC" style="width: 90px; height: 20px;" class="importo" value="0,00" maxlength="12"></td></tr><tr><td><img src="filescalcolapreventivopec/blank.gif" width="1" height="37" border="0" alt=""></td><td valign="top"><input type="checkbox" id="CHECKLOGO" name="CHECKLOGO" onclick="if(this.checked){IMPORTOLOGO.value=50,00} else {IMPORTOLOGO.value=0,00}; return somma1();return false;" onblur="somma1();" onmouseout="IMPORTOLOGO.value=formatCurrency(IMPORTOLOGO.value);" value=""></td><td></td><td></td><td></td><td></td><td valign="top"><input type="text" id="IMPORTOLOGO" name="IMPORTOLOGO" style="width: 90px; height: 20px;" class="importo" value="0,00" maxlength="7"></td></tr><tr><td><img src="filescalcolapreventivopec/blank.gif" width="1" height="53" border="0" alt=""></td><td></td><td valign="top"><input type="text" id="NQUOTESPAZIO" name="NQUOTESPAZIO" style="width: 50px; height: 20px;" class="numero" onblur="IMPORTOQUOTESPAZIO.value=formatCurrency(IMPORTOQUOTESPAZIO.value);" onchange="IMPORTOQUOTESPAZIO.value=NQUOTESPAZIO.value*15,00; return somma1();" value="" maxlength="4"></td><td></td><td></td><td></td><td valign="top"><input type="text" id="IMPORTOQUOTESPAZIO" name="IMPORTOQUOTESPAZIO" style="width: 90px; height: 20px;" class="importo" value="0,00" maxlength="7"></td></tr><tr><td><img src="filescalcolapreventivopec/blank.gif" width="1" height="36" border="0" alt=""></td><td></td><td></td><td></td><td></td><td></td><td valign="top"><input type="text" id="IMPONIBILE" name="IMPONIBILE" style="width: 90px; height: 20px;" class="importo" onchange="formatCurrency(IMPONIBILE.value,10);" value="0,00" maxlength="7"></td></tr><tr><td><img src="filescalcolapreventivopec/blank.gif" width="1" height="34" border="0" alt=""></td><td></td><td></td><td></td><td></td><td></td><td valign="top"><input type="text" id="IVA" name="IVA" style="width: 90px; height: 20px;" class="importo" value="0,00" maxlength="7"></td></tr><tr><td><img src="filescalcolapreventivopec/blank.gif" width="1" height="20" border="0" alt=""></td><td></td><td></td><td></td><td></td><td></td><td valign="top"><input type="text" id="TOTALE_GENERALE" name="TOTALE_GENERALE" style="width: 90px; height: 20px;" class="importo" value="0,00" maxlength="7"></td></tr></table><div id="ldheLabelNumeroSmart" style="position: absolute; left: 112px; top: 205px;" align="left"> <img id="LabelNumeroSmart" name="LabelNumeroSmart" src="filescalcolapreventivopec/preventivopec_labelnumerosmart.png" width="151" height="20" border="0" alt=""></div> <div id="ldheLabelCostoSmart" style="position: absolute; left: 351px; top: 205px;" align="left"> <img id="LabelCostoSmart" name="LabelCostoSmart" src="filescalcolapreventivopec/preventivopec_labelcostosmart.png" width="131" height="20" border="0" alt=""></div> <div id="ldheLabelTitoloPreventivo" style="position: absolute; left: 114px; top: 11px; width: 316px; height: 24px; text-align: center;" align="left"> <span class="arial160FFFFFFtb">PREVENTIVO PEC</span></div> <div id="ldheLabelSmart" style="position: absolute; left: 271px; top: 79px; width: 40px; height: 20px; text-align: justify;" align="left"> <table border="0" cellspacing="0" cellpadding="0"><tr><td width="40" height="20" align="left" valign="middle" style="text-align: justify;"><span class="arial100FFFFFFt">Smart</span></td></tr></table></div> <div id="ldheLabelBusiness" style="position: absolute; left: 359px; top: 79px; width: 54px; height: 20px; text-align: justify;" align="left"> <table border="0" cellspacing="0" cellpadding="0"><tr><td width="54" height="20" align="left" valign="middle" style="text-align: justify;"><span class="arial100FFFFFFt">Business</span></td></tr></table></div> <div id="ldheLabelBusinessAdvance" style="position: absolute; left: 463px; top: 79px; width: 112px; height: 20px; text-align: justify;" align="left"> <table border="0" cellspacing="0" cellpadding="0"><tr><td width="112" height="20" align="left" valign="middle" style="text-align: justify;"><span class="arial100FFFFFFt">Business Advance</span></td></tr></table></div> <div id="ldheLabelTipolgiaPec" style="position: absolute; left: 10px; top: 79px; width: 241px; height: 20px; text-align: justify;" align="left"> <table border="0" cellspacing="0" cellpadding="0"><tr><td width="241" height="20" align="left" valign="middle" style="text-align: justify;"><span class="arial100FFFFFFt">Tipolgia di Dominio Pec Desiderata:</span></td></tr></table></div> <div id="ldheLabelDominio" style="position: absolute; left: 10px; top: 111px;" align="left"> <img id="LabelDominio" name="LabelDominio" src="filescalcolapreventivopec/preventivopec_labeldominio.png" width="475" height="20" border="0" alt=""></div> <div id="ldheLabelNumeroSpazio" style="position: absolute; left: 10px; top: 276px;" align="left"> <img id="LabelNumeroSpazio" name="LabelNumeroSpazio" src="filescalcolapreventivopec/preventivopec_labelnumerospazio.png" width="52" height="20" border="0" alt=""></div> <div id="ldheLabelCostoSpazio" style="position: absolute; left: 351px; top: 276px;" align="left"> <img id="LabelCostoSpazio" name="LabelCostoSpazio" src="filescalcolapreventivopec/preventivopec_labelcostospazio.png" width="131" height="20" border="0" alt=""></div> <div id="ldheLineaTotale1" style="position: absolute; left: 346px; top: 309px;" align="left"> <table width="229" border="0" cellspacing="0" cellpadding="0" bgcolor="#000000"><tr><td width="229" height="1" bgcolor="#000000"><img src="filescalcolapreventivopec/blank.gif" border="0" alt=""></td></tr></table></div> <div id="ldheButton1" style="position: absolute; left: 75px; top: 452px;" align="left"> <input type="button" id="Button1" name="Button1" style="width: 100px; height: 25px;" onclick="calcolatotale();return false;" value="CALCOLA"></div> <div id="ldheButton2" style="position: absolute; left: 249px; top: 452px;" align="left"> <input type="button" id="Button2" name="Button2" style="width: 100px; height: 25px;" value="STAMPA"></div> <div id="ldheLabelNumeroPersonalizzazione" style="position: absolute; left: 30px; top: 238px;" align="left"> <img id="LabelNumeroPersonalizzazione" name="LabelNumeroPersonalizzazione" src="filescalcolapreventivopec/preventivopec_labelnumeropersonalizzazione.png" width="455" height="20" border="0" alt=""></div> <div id="ldheLabelIva" style="position: absolute; left: 351px; top: 364px;" align="left"> <img id="LabelIva" name="LabelIva" src="filescalcolapreventivopec/preventivopec_labeliva.png" width="131" height="20" border="0" alt=""></div> <div id="ldheLabelTotale" style="position: absolute; left: 351px; top: 398px;" align="left"> <img id="LabelTotale" name="LabelTotale" src="filescalcolapreventivopec/preventivopec_labeltotale.png" width="131" height="20" border="0" alt=""></div> <div id="ldheLabelImponibile" style="position: absolute; left: 288px; top: 329px;" align="left"> <img id="LabelImponibile" name="LabelImponibile" src="filescalcolapreventivopec/preventivopec_labelimponibile.png" width="194" height="20" border="0" alt=""></div> <div id="ldheButton3" style="position: absolute; left: 415px; top: 452px;" align="left"> <input type="reset" id="Button3" name="Button3" style="width: 100px; height: 25px;" value="CANCELLA"></div> <div id="ldheGrLabel1" style="position: absolute; left: 10px; top: 144px;" align="left"> <img id="GrLabel1" name="GrLabel1" src="filescalcolapreventivopec/preventivopec_grlabel1.png" width="475" height="20" border="0" alt=""></div> <div id="ldheGrLabel3" style="position: absolute; left: 10px; top: 175px;" align="left"> <img id="GrLabel3" name="GrLabel3" src="filescalcolapreventivopec/preventivopec_grlabel3.png" width="475" height="20" border="0" alt=""></div> <div id="ldheGrLabel2" style="position: absolute; left: 114px; top: 275px;" align="left"> <img id="GrLabel2" name="GrLabel2" src="filescalcolapreventivopec/preventivopec_grlabel2.png" width="223" height="20" border="0" alt=""></div> <div id="ldheGrLabel4" style="position: absolute; left: 10px; top: 205px;" align="left"> <img id="GrLabel4" name="GrLabel4" src="filescalcolapreventivopec/preventivopec_grlabel4.png" width="56" height="20" border="0" alt=""></div> </td></tr></table></form></div> </body> </html>
Qualcuno ha qualche soluzione da proporre o trova un errore?
Grazie sin d'ora per qualsiasi suggerimento o correzione |
s.dav |
Posted - 03 Dec 2007 : 09:21:29 Un paio di suggerimenti: 1- controlla le varie parseInt; di default usano la base 8 :-0 quindi quando lo usi ti consiglio sempre di usare parseInt(n,10); specificando la base 2- ti consiglio di utilizzare all'interno di FORM solo campi posizionati in modo relativo; tu li hai lasciati posizionati in assoluto; probabilmente ? per questo che usando document.nomeform.nomecampo non funzionano perch? i vari campi sono ognuno generati all'interno di un DIV che serve per posizionarli. 3- Se vuoi lasciare invece tutto com'? prova usando document.getElementById("tuocampo").text e vedrai che funziona
|
|
|