Este es mi código, que crea 10 elementos de formulario con un botón "Eliminar"

<?php

for ($i = 0; $i < 10; $i++) { ?>
<form action="xxx" method="post">
   <div>
      <a class="button">Delete</a>
   </div>

    <input type="hidden" name="MyID" value="<? echo $i; ?>" />
</form>
<? } ?>

Necesito saber, en qué botón se hizo clic para obtener el valor de "MyID". Conozco esta función jquery onclick:

$( ".button" ).click(function() {
  alert("Button clicked);
  $(".MyID").val(); // THE ID
});

Pero el campo de entrada con "MyID" existe 10 veces. El código no puede funcionar así. ¿Cómo puedo darme cuenta?

0
Ghost108 15 abr. 2020 a las 21:56

2 respuestas

La mejor respuesta

Puedes obtenerlo usando el siguiente código

$( ".button" ).click(function() {
   alert($(this).closest('form').find('input[name$="MyID"]').val()); // THE ID
 });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="xxx" method="post">
   <div>
      <a class="button">Delete</a>
   </div>

    <input type="hidden" name="MyID" value="1" />
</form>
<form action="xxx" method="post">
   <div>
      <a class="button">Delete</a>
   </div>

    <input type="hidden" name="MyID" value="2" />
</form>
<form action="xxx" method="post">
   <div>
      <a class="button">Delete</a>
   </div>

    <input type="hidden" name="MyID" value="3" />
</form>
<form action="xxx" method="post">
   <div>
      <a class="button">Delete</a>
   </div>

    <input type="hidden" name="MyID" value="4" />
</form>
<form action="xxx" method="post">
   <div>
      <a class="button">Delete</a>
   </div>

    <input type="hidden" name="MyID" value="5" />
</form>
<form action="xxx" method="post">
   <div>
      <a class="button">Delete</a>
   </div>

    <input type="hidden" name="MyID" value="6" />
</form>
<form action="xxx" method="post">
   <div>
      <a class="button">Delete</a>
   </div>

    <input type="hidden" name="MyID" value="7" />
</form>
<form action="xxx" method="post">
   <div>
      <a class="button">Delete</a>
   </div>

    <input type="hidden" name="MyID" value="8" />
</form>
<form action="xxx" method="post">
   <div>
      <a class="button">Delete</a>
   </div>

    <input type="hidden" name="MyID" value="9" />
</form>
<form action="xxx" method="post">
   <div>
      <a class="button">Delete</a>
   </div>

    <input type="hidden" name="MyID" value="10" />
</form>
0
Shijin TR 15 abr. 2020 a las 19:04
<a class="button" data-id="<? echo $i; ?>">Delete</a>

Luego acceda con el método data('id').

0
Taplar 15 abr. 2020 a las 19:06