Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Mensaje iniciado por: Kase en 11 Agosto 2013, 09:26 AM

Título: modificando inputs con javascript
Publicado por: Kase en 11 Agosto 2013, 09:26 AM
digamos que tengo una tabla

Código (html4strict) [Seleccionar]
<tr class='row' id=1>
<td class='precio'> <input type=''....></td>
<td class='precio_iva'><input type=''....></td>
</tr>
<tr class='row' id=2>
<td class='precio'> <input type=''....></td>
<td class='precio_iva'><input type=''....></td>
</tr>
<tr class='row' id=3>
<td class='precio'> <input type=''....></td>
<td class='precio_iva'><input type=''....></td>
</tr>


necesito que al cambiar el dato precio se modifique su correspondiente precio_iva

tengo acceso a jquery

asi que hago un

Código (javascript) [Seleccionar]
$('.row>.precio').keyup(function({
$(this).parent().find('.precio_iva>input').val($(this).value())
}))


algo asi...
y eso me funciona, pero solo con la primer fila..  y no tengo acceso a cambiar las clases... estare asiendo algo mal? :-\



mentira, ya checando vien si funciona.. el problema es que anado nuevas filas con otro js, y esas nuevas filas no las revisa...   :S  ahora si no se que hacer.
Título: Re: modificando inputs con javascript
Publicado por: #!drvy en 11 Agosto 2013, 14:17 PM
Tienes que utilizar on para recorrer de nuevo el DOM. Así buscas elementos que han podido ser añadidos después de la carga del script.

ej:
Código (javascript) [Seleccionar]
$('body').on('keyup','.row > .precio > input',function(){
  $(this).parent().next('.precio_iva').find('input:first').val($(this).val());
});


Saludos
Título: Re: modificando inputs con javascript
Publicado por: Kase en 11 Agosto 2013, 19:21 PM
muchas gracias!

al final tube que usar  "live" por que dispongo de jquery 1.4 y prefiero no updatearlo para evitar errores

Código (javascript) [Seleccionar]
$(''.row > .precio > input'').live('keyup',function(){
   $(this).parent().next('.precio_iva').find('input:first').val($(this).val());
});



ahora tengo el dilema de que  '.row > .precio > input'  se modifica desde una seleccion en un popup... no con el teclado... n__nU   en ningun momento obtiene un focus o lo pierde :S   pero  podria hacer que se procese todo    cuando se obtiene el focus del windows