Comunidad de diseño web y desarrollo en internet online

Necesito Ayuda en Javascript

Citar            
MensajeEscrito el 21 Mar 2017 09:00 am
tengo un la mente un proyecto pero estoy atascado en la face final...

aquí esta el Código

<script language="javascript">
/** Añadir o Borror Fila de la Tabla **/
var cont=1;
/** Añade Fila **/
function addRowX()
{
cont++;
var indiceFila=1;
myNewRow = document.getElementById('tabla').insertRow(-1);
myNewRow.id=indiceFila;

myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<center><input name="unidad_'+cont+'" type="text" size="5" onkeyup="cal()" /></center>';

myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<center><input name="monto_'+cont+'" type="text" size="10" readonly="readonly" value="100" /></center>';

myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<center><input name="ptotal_'+cont+'" type="text" size="10" /></center>';


indiceFila++;
}
/** Asigna Valor al Contador **/
function asigna()
{
valor=document.form.var_cont.value=cont;
}
/**Multiplica las Unida por el Costo**/
function cal(){
var unidad = document.factura.unidad_1.value
var costo = document.factura.monto_1.value
var resultado = unidad * costo
document.factura.ptotal_1.value = resultado
}
</script>

<form name="factura">
<input type="button" name="b1" value="A&ntilde;adir" onClick="addRowX()"><input type="hidden" name="var_cont">
</table>
<table border="1" id="tabla" bordercolor="#FFCC33" cellspacing="1" align="center" width="600">
<thead>
<tr align="center">
<td width="10%"><strong>Unidad</strong></td>
<td width="10%"><strong>Monto</strong></td>
<td width="10%"><strong>Total</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td align="center"><input name="unidad_1" type="text" size="5" onkeyup="cal()" /></td>
<td align="center"><input name="monto_1" type="text" size="10" readonly="readonly" value="100" /></td>
<td align="center"><input name="ptotal_1" type="text" size="10" /></td>
</tr>
</tbody>
</table>
</form>

la falla que estoy teniendo que que necesito multiplicar las unidades por el costo en todas las lineas que se creen, solo e logrado que se calcule en la primera linea pero si le doy agregar fila la función queda inactiva, lo que no e podido es meter la función dentro de la función addRowX() por que no hallo como manejar el contador para modificar las campo de captación de la función cal con el nombre de los campos creados

por favor necesito su apoyo...
Atentamente. Francisco

Por Zeroakzor

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Mar 2017 04:58 pm
Hola Francisco que tal, te eh solucionado el problema con un poco de jquery (no me odies por ello jiji):

Código HTML :

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script language="javascript">
/** Añadir o Borror Fila de la Tabla **/
var cont=1;
/** Añade Fila **/
function addRowX()
{
cont++;
var indiceFila=1;
myNewRow = document.getElementById('tabla').insertRow(-1);
myNewRow.id=indiceFila;

myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<center><input name="unidad_'+cont+'" type="text" size="5" onkeyup="cal('+cont+')" /></center>';

myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<center><input name="monto_'+cont+'" type="text" size="10" readonly="readonly" value="100" /></center>';

myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<center><input name="ptotal_'+cont+'" type="text" size="10" /></center>';


indiceFila++;
}
/** Asigna Valor al Contador **/
function asigna()
{
valor=document.form.var_cont.value=cont;
}
/**Multiplica las Unida por el Costo**/
function cal(valor){

var unidaddin= 'unidad_' + valor;
var costodin= 'monto_' + valor;
var ptotaldin= 'ptotal_' + valor;

console.log(unidaddin);

var unidad = $("input[name="+unidaddin+"]").val();
var costo = $("input[name="+costodin+"]").val();
var resultado = unidad * costo
$("input[name="+ptotaldin+"]").val(resultado);

}
</script>

<form name="factura">
<input type="button" name="b1" value="A&ntilde;adir" onClick="addRowX()"><input type="hidden" name="var_cont">
</table>
<table border="1" id="tabla" bordercolor="#FFCC33" cellspacing="1" align="center" width="600">
<thead>
<tr align="center">
<td width="10%"><strong>Unidad</strong></td>
<td width="10%"><strong>Monto</strong></td>
<td width="10%"><strong>Total</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td align="center"><input name="unidad_1" type="text" size="5" onkeyup="cal(1)" /></td>
<td align="center"><input name="monto_1" type="text" size="10" readonly="readonly" value="100" /></td>
<td align="center"><input name="ptotal_1" type="text" size="10" /></td>
</tr>
</tbody>
</table>
</form>


Demo

Salu2

Por alber93

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Mar 2017 12:17 pm
No todo lo Comtrario mas Bien Agradecido por la ayuda

Por Zeroakzor

1 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.