Esiste un modo per determinare quale elemento ha inviato un modulo da un gestore onsubmit? Cercando di scrivere un gestore generico che sappia quale elemento è stato cliccato. Ad esempio, dato il seguente modulo:Determina quale elemento ha inviato un modulo dall'interno di onsubmit
<form onsubmit="onSubmitHandler">
<input type="submit" name="submit1" />
<input type="submit" name="submit2" />
</form>
Come è possibile determinare all'interno del onSubmitHandler quale pulsante di invio è stato fatto clic? Ho provato event.target/event.srcElement, ma questo fornisce il modulo, non il pulsante di invio effettivo.
Aggiornamento: Sto scrivendo un controllo generico qui, quindi non ha idea di cosa ci sia nel modulo. La soluzione deve funzionare senza conoscere e modificare l'html del modulo. Il mio fallback è camminare sul DOM per trovare tutti i pulsanti che potrebbero causare un invio, ma vorrei evitarlo.
Non è garantito che tutti i pulsanti di invio siano stati selezionati. Per esempio. L'invio da parte di JS (form.submit()) non comporterà alcun valore di pulsanti incluso nel post back –
Anche questo va bene. Un po 'più di background sul problema: questo è per un componente AJAX.Sto cancellando il primo invio, facendo le mie cose, e poi ho bisogno di rieseguire il primo invio come è successo, con tutti i valori di forma corretti. Per quanto sono stato in grado di determinare, l'unico modo per farlo è quello di camminare sul DOM e aggiungere i gestori di clic a tutto ciò che potrebbe causare un invio, e quindi salvarlo. Si supponga che l'ultima cosa che è stata selezionata sia la cosa che ha inviato il modulo, quindi chiamare .click() su di esso quando è necessario inviare nuovamente il modulo. –