Tengo un formulario que agrega una línea dinámicamente al hacer clic en Agregar formulario.
<form class="address"> <input type="text" class="add_name"> <input type="test" class="add_zip"> </form>Cuando se hace clic en, digamos un botón agregar dirección:
<form class="address"> <input type="text" class="add_name"> <input type="test" class="add_zip"> //added line when clicked on btn <input type="text" class="add_name"> <input type="test" class="add_zip"> </form>Usé el siguiente código
$('.address').each(function(){ var address_form = $($this); if(address_form.find('.add_name').val() == ''){ //dosomething }else{ console.log(address_form.find('.add_name').val()); } });digamos que si pongo ambas direcciones, solo se muestra la primera dirección y la segunda no está definida.
Podrías intentar lo siguiente:
$('button').on("click",function(ev){ const inps=$(".address input").slice(0,2).clone().val(""); $(".address").append(inps).append("<br>") }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form class="address"><input type="text" class="add_name" name="name[]" placeholder="Enter your name"><input type="test" class="add_zip" name="zip[]" placeholder="and zip code"><br></form> <button>add fields</button> Agregué un atributo de name a sus campos de entrada. Al hacer esto, los datos se pueden recopilar en el backend en estructuras de matriz adecuadas para name y zip .