2011-11-30 30 views

Respuesta

23

Si saber el número de entradas submit y en cuál (en orden) desea desencadenar un click, entonces puede usar la sintaxis nth-child() para atacarlo. O agregue una identificación o una clase a cada uno que los separe del otro.

Selección de los elementos por su índice:

$('input[type="submit"]:nth-child(1)').trigger('click');//selects the first one 
$('input[type="submit"]:nth-child(2)').trigger('click');//selects the second one 
$('input[type="submit"]:nth-child(100)').trigger('click');//selects the 100th one 

realidad, hay varias maneras de hacer esto incluyendo el uso de .eq(): http://api.jquery.com/eq

Selección de los elementos por su ID:

<input type="submit" id="submit_1" /> 
<input type="submit" id="submit_2" /> 
<input type="submit" id="submit_100" /> 

<script> 
$('#submit_100').trigger('click'); 
</script> 

Nota que .click() es la abreviatura de .trigger('click').

+0

¿Hay una razón para preferir la escritura corriente '.trigger ('clic')' sobre la taquigrafía? – AntonChanning

+1

@AntonChanning Es más una preferencia que otra cosa. Las funciones abreviadas son envoltorios, por lo que hay una cantidad muy pequeña de sobrecarga al llamarlos, pero no puedo imaginar que tenga un impacto notable. Me gusta que el formulario '.trigger ('click')' sea más descriptivo, para mí es más fácil leer el código rápidamente. – Jasper

+0

Supongo que también actúa como un recordatorio visual de la sintaxis que se puede utilizar para cualquier tipo de evento, incluidos los tipos de eventos personalizados. – AntonChanning

4

Añadir id s a cada botón y seleccione la id con jQuery.

O, si las formas tienen id s, a continuación, sólo apuntar el formulario y presentarlo así:

$("#form-id").submit(); 
6

Si añade un marcador, como un identificador específico o clase a su input, puede hacer tu selector más específico. Por ejemplo, si se le da al botón que desea el ID de form-btn así:

<input type="submit" id="form-btn" /> 

puede seleccionarlo como esto:

$('input[type=submit]#form-btn').click(); 

O simplemente:

$('#form-btn').click(); 
1

Camino tarde a la fiesta, pero si sus someter botones tienen nombres:

$("input[name='submitbuttonname']").click(); 
0

hmm que no puede trabajar con un formulario con este asistente intacted

$("#renqform").validate().settings.ignore = ":disabled"; 
return $("#renqform").valid(); 
1

Otra sugerencia!

Tenía un formulario con varios envíos, que también tenía atributos de valor variable, por lo que no podía simplemente enviar el formulario después de realizar mi confirmación incorporada.

En su lugar, agregué unos pocos botones ocultos que forcé un clic después de que recibí un Sí de mi confirmación.

Éstos son los botones:

<button id="email" name="email" type="submit" class="submit radius confirmation" value="all"><?php echo $this->__('Email Receipts to Selected'); ?></button> 
<button id="email-french" name="email-french" type="submit" class="submit radius confirmation" value="all"><?php echo $this->__('Email French Receipts to Selected'); ?></button> 
<button id="helper-email" name="email" type="submit" class="submit hide" value="all"></button> 
<button id="helper-email-french" name="email-french" type="submit" class="submit hide" value="all"></button> 

Y aquí está el jQuery:

<script type="text/javascript"> 
jQuery(function ($) { 
    $('[id^=email]').on('click', function (e) { 
     e.preventDefault(); 

     var button = $(this); 

     notify.confirm(<?php echo json_encode($this->__('Are you sure?')); ?>, function (ans) { 
      if (ans) { 
       $('#helper-' + button.attr('id')).click(); 
      } 
     }); 
    }); 
}); 
</script> 
Cuestiones relacionadas