मैं एक रूप है कि इस तरह दिखता है:भेजने से दो के साथ एक jQuery ajax प्रपत्र बटन प्रस्तुत
<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>
जब मैं करने के लिए बाध्य फ़ॉर्म के सबमिट करें ($("vote_form").submit()
), मैं जो छवि के लिए उपयोग किया प्रतीत नहीं उपयोगकर्ता ने क्लिक किया। तो मैं क्या मैं कोशिश
- वापसी झूठी की परवाह किए बिना छवि को ही (
$(".vote_down, .vote_up").click()
) है, जो हमेशा फ़ॉर्म सबमिट होने पर क्लिक करने के लिए बाध्य करने के लिए कोशिश कर रहा हूँ; - event.stopPropogation(); या
- event.preventDefault();
क्योंकि ये सभी फॉर्म इवेंट हैं।
मैं form.submit() घटना के लिए अपने $ .post() संलग्न करना चाहिए, और यदि हां, मैं कैसे बताऊँ जो इनपुट उपयोगकर्ता पर क्लिक किया, या
मैं संलग्न करना चाहिए मेरी छवि पर $ .post() क्लिक करें, और यदि हां, तो मैं फ़ॉर्म को सबमिट करने से कैसे रोकूं।
यहाँ मेरी 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!?
});
इस के लिए धन्यवाद एक गुच्छा। मेरे मौजूदा प्रयास को थोड़ा सा छोटा कर दिया! – mhenrixon
'$ this.attr (" name ")' का उपयोग कर हार्डकोडिंग '' और सबमिट = "' से बचें क्यों नहीं? – Bengt
@bngtlrs मुझे लगता है क्योंकि यह एक फ़ंक्शन कॉल ओवरहेड है जो कि केवल अनावश्यक है। – PaulSkinner