Przesyłanie formularza jQuery ajax z dwoma przyciskami przesyłania
Mam formularz, który wygląda tak:
<form action="/vote/" method="post" class="vote_form">
<input type="hidden" name="question_id" value="10" />
<input type="image" src="vote_down.png" class="vote_down" name="submit" value="down" />
<input type="image" src="vote_up.png" class="vote_up" name="submit" value="up" />
</form>
Kiedy wiążę się z przesłaniem formularza ($("vote_form").submit()
), Wydaje mi się, że nie mam dostępu do tego, który obrazek kliknął użytkownik. Próbuję więc powiązać się z kliknięciem samego obrazu ($(".vote_down, .vote_up").click()
), który zawsze przesyła formularz, niezależnie od tego, czy próbuję
ponieważ wszystkie z nich są zdarzeniami formy.
Czy powinienem dołączyć mój $ .post () do zdarzenia form.submit (), a jeśli tak, to jak mam określić, które wejście użytkownik kliknął, lub
Czy powinienem dołączyć mój $ .post () do kliknięcia obrazu, a jeśli tak, to jak mogę zapobiec przesyłaniu formularza.
Oto jak wygląda mój kod jQuery:
$(".vote_up, .vote_down").click(function (event) {
$form = $(this).parent("form");
$.post($form.attr("action"), $form.find("input").serialize() + {
'submit': $(this).attr("value")
}, function (data) {
// do something with data
});
return false; // <--- This doesn't prevent form from submitting; what does!?
});