Cita:
Iniciado por Dany_s el return false está en el else tiene que estar siempre al final de la función
podés guardarte la fila en una variable
fila = $(this).closest('tr');
asi después usas fila.find('.clase')
Gracias Dani_s tu ayuda me ha servido mucho; pero todavía hay algo que no me funciona y no consigo resolver (ya se que tengo que ponerme las pilas con Jquery (:: ) y son dos temas:
1 El que más me preocupa es que cuando pulso en agregar en la primera fila tras validar los datos, me crea la segunda fila perfectamente y cambiar a el botón agregar de la primera el value que ahora pasa a valer
value="eliminar" y le borra la ID , con la segunda hace lo mismo, pero con la tercera cuando se crea también se le borra la id y se pone el texto eliminar (como en la 1 y 2), pero debería de poner agregar y haberle asignado una id de forma dinámica.
2 En Iexplorer (dichoso explorer ¡¡¡ ) se clonan las filas y sus datos (lo suyo es que se borren), en Mozilla va perfecto esto último (lo anterior sucede el los dos navegadores).
El código siguiendo tus consejos de eliminar las ids lo tengo así:
Código:
$('#agregar').live('click', function(){
if ($(this).closest('tr').find('.name').val() == '')
alert('Por favor inserte un name');
else if ($(this).closest('tr').find('.vat').val() == '')
alert('Por favor inserte un vat correcto');
else if ($(this).closest('tr').find('.day').val() == '0')
alert('Por favor inserte un dia correcto');
else if ($(this).closest('tr').find('.month').val() == '0')
alert('Por favor inserte un mes correcto');
else if ($(this).closest('tr').find('.year').val() == '0')
alert('Por favor inserte un año correcto');
else {
newTr = '<tr>'+$('#tabla tr').clone().html()+'</tr>';
$('select, input', newTr).val('');
$(this).text("Eliminar").addClass('eliminar').removeAttr('id');
$('#tabla').append(newTr);
}
return false;
});
En realidad hay otra cosa que me produce confusión , ¿el return false exactamente que funciona tiene ahí?, ¿porque necesito que devuelva falso la función?.
Mil gracias por tu ayuda