Todo esto es un poco sobre mi experiencia, pero he buscado por todas partes, yo podría, y la investigación de este material durante 6 horas hasta el momento de hoy y estoy corriendo en las paredes de ladrillo.

Tengo una tabla, donde un usuario introduce dos variables y a partir de estas dos variables 12 números diferentes de escupir.
El problema de esos números son escupir en formato de cadenas de texto en el modo de sólo lectura campos de texto, y necesito que se muestren como moneda.
Todos los campos de entrada en la mesa están usando onchange para ejecutar la primera función que hace los cálculos, pero la segunda y la tercera de las funciones que he encontrado en internet no puedo llegar a correr.

HTML:

 <form name="form" >
<table width="550" border="0">
<tr>
<td width="265" height="30"><div align="right">Number of Business Customers</div></td>
</tr>
<TR>
<td width="265" height="30"><div align="right">Number of Business Clients:</div></td>
<td width="142" div align="center"><input style="font-size:12px;text-align:center;" name="sum1" onChange="updatesum();CurrencyFormatted();CommaFormatted90;" /></td>
<td width="129" div align="center">&nbsp;</td>
</tr>
<TR>
<td height="30"><div align="right">Average Number of Employees:</td>
<TD div align="center"><input style="font-size:12px;text-align:center;" name="sum2" onChange="updatesum();CurrencyFormatted();CommaFormatted();" /></TD>
<TD div align="center">&nbsp;</TD>
<TR>
<td height="30"><div align="right">Anticipated Employee Tax Reduction:</div></td>
<TD div align="center"><input style="font-size:12px;text-align:center;border:none;" name="sum16"  readonly "></TD>
<TD div align="center"><input style="font-size:12px;text-align:center;border:none" name="sum26" readonly><BR /></TD>
</TR>
<TR>
<td height="30"><div align="right">Potential Payroll Tax Reduction (annually):</div></td>
<TD div align="center"><input style="font-size:12px;text-align:center;border:none" name="sum17" readonly ></TD>
<TD div align="center"><input style="font-size:12px;text-align:center;border:none" name="sum27" readonly ></TD>
</TR>
<TR>
<td height="30"><div align="right">Potential Payroll Tax Reduction (monthly):</td>
<TD div align="center"><input type="text" style="font-size:12px;text-align:center;border:none" name="sum18" readonly ></td>
<TD div align="center"><input style="font-size:12px;text-align:center;border:none" name="sum28" readonly ></td>
</TR>
<TR>
<td height="30"><div align="right">Pearl Logic Billing (50% of savings, for 12 months):</td>
<TD div align="center"><input style="font-size:12px;text-align:center;border:none" name="sum19" readonly ></td>
<TD div align="center"><input style="font-size:12px;text-align:center;border:none" name="sum29" readonly ></td>
</TR>
<TR>
<td height="30"><div align="right">Sales Agent Monthly Comp (8%):</td>
<TD div align="center"><input style="font-size:12px;text-align:center;border:none" name="sum14" readonly ></td>
<TD div align="center"><input style="font-size:12px;text-align:center;border:none" name="sum24" readonly ></td>
</TR>
<TR>
<td height="30"><div align="right">Sales Agent Total Comp (8%):</td>
<TD div align="center"><input style="font-size:12px;text-align:center;border:none" name="sum15" readonly ></td>
<TD div align="center"><input style="font-size:12px;text-align:center;border:none" name="sum25" readonly ></td>
</TR>
</table>
</form>

Javascript:

function updatesum() {
document.form.sum14.value = ((((((document.form.sum1.value -0)*(document.form.sum2.value -0)*300))/12)/2)*.08);
document.form.sum24.value = ((((((document.form.sum1.value -0)*(document.form.sum2.value -0)*400))/12)/2)*.08);
document.form.sum15.value = (((((((document.form.sum1.value -0)*(document.form.sum2.value -0)*300))/12)/2)*.08)*12);
document.form.sum25.value = (((((((document.form.sum1.value -0)*(document.form.sum2.value -0)*400))/12)/2)*.08)*12);
document.form.sum16.value = 300;
document.form.sum26.value = 400;
document.form.sum17.value = ((document.form.sum1.value -0)*(document.form.sum2.value -0)*300);
document.form.sum27.value = ((document.form.sum1.value -0)*(document.form.sum2.value -0)*400);
document.form.sum18.value = (((document.form.sum1.value -0)*(document.form.sum2.value -0)*300)/12);
document.form.sum28.value = (((document.form.sum1.value -0)*(document.form.sum2.value -0)*400)/12);
document.form.sum19.value = ((((document.form.sum1.value -0)*(document.form.sum2.value -0)*300)/12)/2);
document.form.sum29.value = ((((document.form.sum1.value -0)*(document.form.sum2.value -0)*400)/12)/2);
}
//--></script>
<script type="text/javascript"><!--
function CurrencyFormatted()
{
var i = parseFloat(amount);
if(isNaN(i)) { i = 0.00; }
var minus = '';
if(i < 0) { minus = '-'; }
i = Math.abs(i);
i = parseInt((i + .005) * 100);
i = i / 100;
s = new String(i);
if(s.indexOf('.') < 0) { s += '.00'; }
if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
s = minus + s;
return s;
}
//--></script>
<script type="text/javascript"><!--
function CommaFormatted()
{
var delimiter = ","; //replace comma if desired
var a = amount.split('.',2)
var d = a[1];
var i = parseInt(a[0]);
if(isNaN(i)) { return ''; }
var minus = '';
if(i < 0) { minus = '-'; }
i = Math.abs(i);
var n = new String(i);
var a = [];
while(n.length > 3)
{
var nn = n.substr(n.length-3);
a.unshift(nn);
n = n.substr(0,n.length-3);
}
if(n.length > 0) { a.unshift(n); }
n = a.join(delimiter);
if(d.length < 1) { amount = n; }
else { amount = n + '.' + d; }
amount = minus + amount;
return amount;
}
//--></script>
  • java no es javascript. ¿De dónde amount provienen de sus funciones?
  • Si usted abre su navegador de la consola de JavaScript (la mayoría de los navegadores tienen una), ¿ve usted alguna errores?
  • Mis disculpas. Si te refieres a la «cantidad» como se refiere en las funciones «CommaFormatted()» y «CurrencyFormatted()», NO tengo idea de donde la cantidad proviene de en los. Yo sólo creó la primera función de «updatesum()» y en la parte HTML. Sólo me agarró de estas dos últimas funciones en un intento de obtener los resultados de «updatesum()» para volver en el HTML como moneda de cambio en lugar de una cadena.
  • Así que me podría dar algún código aleatorio y puede ejecutar sin siquiera intentar entenderlo, dulce. He esta increíble secuencia de comandos sólo tienes que probar…
  • Me encantaría entender el código que me diste. De hecho, esta mañana no tenía ni idea de cómo llamar a una función en HTML y ahora sé cómo hacerlo porque he encontrado algunos script y se rompió aparte hasta que entendí cómo funcionaba. Estoy pidiendo ayuda con algo que me tiene un límite, porque mi jefe no quiere contratar a alguien para hacer el sitio de trabajo desde que me conozco «un poco» sobre la materia. Yo no soy propensos a aprender esto desde el suelo hasta dentro de las próximas horas y se me ocurrió la idea de buscar ayuda, y aprender de eso. Estoy usando CodeAcademy para probar y aprender a hacer estas cosas.
InformationsquelleAutor user2116986 | 2013-04-22

1 Comentario

  1. 3

    Sus funciones tienen un indefinido amount variable. Presumiblemente, ellos solo accidente con un error.

    Primer lugar usted necesita para eliminar esas llamadas a la función de la onChange oyente.

    Segundo, cambiar las funciones a tomar un formato de valor y el retorno de una formateado

    function CurrencyFormatted(amount) { //<-- notice the method parameter
    var i = parseFloat(amount);
    if(isNaN(i)) { i = 0.00; }
    var minus = '';
    if(i < 0) { minus = '-'; }
    i = Math.abs(i);
    i = parseInt((i + .005) * 100);
    i = i / 100;
    s = new String(i);
    if(s.indexOf('.') < 0) { s += '.00'; }
    if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
    s = minus + s;
    return s;
    }

    Cambiar ahora cada uno de su conjunto de llamadas en su updatesum primero dar formato al valor

    var sum14 = ((((((document.form.sum1.value -0)*(document.form.sum2.value -0)*300))/12)/2)*.08);
    var formattedSum14 = CommaFormatted(CurrencyFormatted(sum14));
    document.form.sum14.value = sum14;
    • Bueno, creo que entiendo lo que quieres decir acerca de variable no definida. Además, voy a actualizar el conjunto de las llamadas, que tiene sentido. Pero, ¿cómo puedo quitar las funciones de la onChange oyente?
    • Cambio onChange="updatesum();CurrencyFormatted();CommaFormatted();" a sólo onChange="updatesum()". Usted no necesita llamar a estas funciones desde onChange – a utilizar en updatesum como las funciones de utilidad.
    • Ah bueno! Gracias.

Dejar respuesta

Please enter your comment!
Please enter your name here