2011-11-30 19 views

risposta

23

Se conoscere il numero di ingressi submit e quale (in ordine) si desidera attivare un click su quindi è possibile utilizzare la sintassi nth-child() per targetizzarlo. Oppure aggiungi un ID o una classe a ognuno che li separa dall'altro.

Selezione degli elementi per il loro indice:

$('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 

In realtà ci sono diversi modi per farlo anche utilizzando .eq(): http://api.jquery.com/eq

Selezione degli elementi per la loro 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 che .click() è l'abbreviazione di .trigger('click').

+0

C'è un motivo per preferire il Longhand '.trigger ('click')' sopra la stenografia? – AntonChanning

+1

@AntonChanning È più una preferenza che altro. Le funzioni di stenografia sono wrapper quindi c'è una piccola quantità di overhead quando le chiamano, ma non riesco a immaginare che avrebbe alcun impatto degno di nota. Mi piace il fatto che il formato '.trigger ('click')' sia più descrittivo, per me è più facile leggere velocemente il codice. – Jasper

+0

Immagino che funzioni anche come promemoria visivo della sintassi che può essere utilizzata per qualsiasi tipo di evento, compresi i tipi di eventi personalizzati. – AntonChanning

4

Aggiungere id s a ciascun pulsante e selezionare id con jQuery.

Oppure, se le forme sono id s, poi basta indirizzare il modulo e inviarlo in questo modo:

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

Se si aggiunge un marcatore, come un ID specifico o la classe al vostro input, si può fare il tuo selettore più specifico. Ad esempio, se si dà il pulsante che si desidera che l'ID di form-btn come questo:

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

È possibile selezionare in questo modo:

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

O semplicemente:

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

Way in ritardo alla festa, ma se i pulsanti inviare hanno nomi:

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

hmm esso lavoro smussato con una forma procedura guidata con questo intacted

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

Un altro suggerimento!

Avevo un modulo con più sottomissioni, che aveva anche attributi di valore variabile, quindi non potevo semplicemente inviare il modulo dopo aver eseguito la conferma incorporata.

Invece, ho aggiunto alcuni pulsanti nascosti su cui ho forzato un clic dopo che ho ricevuto un Sì dalla mia conferma.

Qui ci sono i pulsanti:

<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> 

Ed ecco il 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> 
Problemi correlati