सबमिट करने से पहले कुछ कैसे करें? [बन्द है]


141

मेरे पास एक फॉर्म है जिसमें एक बटन है जो फॉर्म को सबमिट करता है। सबमिशन होने से पहले मुझे कुछ करने की जरूरत है। मैं कर की कोशिश की onClick उस बटन पर लेकिन सबमिट करने के बाद ऐसा होता है।

मैं कोड साझा नहीं कर सकता, लेकिन आम तौर पर, मुझे इसे संभालने के लिए jQuery या JS में क्या करना चाहिए?



2
@ ब्रैड क्रिस्टी यदि केवल मैं एक उत्तर के रूप में टिप्पणी स्वीकार कर सकता हूं। बहुत मददगार धन्यवाद।
जिम्मी

3
मैं इसे नफरत करता हूं जब स्टैकओवर एक सवाल बंद करता है। आप निम्न घटनाओं का उपयोग करके अपने कार्यों को संभाल सकते हैं जो कि फॉर्म जमा करने से ठीक पहले निम्नलिखित समय पर आग लगाते हैं: 1- ऑनमाउसओवर 2- onmousemove 3- onmousedown 4- onfocus 5- onmouseup 6- onclick 7-
ऑनसाइट

1
मैं इस प्रश्न की सराहना करता हूं क्योंकि मैं हाल ही में उसी समस्या में भाग गया था और यह प्रश्न वास्तव में वही है जो मैं पूछना चाहता था।
wastetime909

2
अजीब है कि यह सवाल बंद हो गया क्योंकि इसका असली सवाल नहीं है: -?
अन्नाकेलिन

जवाबों:


207

यदि आपके पास इस प्रकार है:

<form id="myform">
...
</form>

फ़ॉर्म सबमिट करने से पहले आप कुछ करने के लिए निम्न jQuery कोड का उपयोग कर सकते हैं:

$('#myform').submit(function() {
    // DO STUFF...
    return true; // return false to cancel form action
});

2
मुझे लूप के लिए इसका उपयोग करने में परेशानी हो रही है जिसे जमा करने से पहले पूरा करना होगा। कोई सुझाव?
स्माइलन

देखने के लिए कोई कोड मिला? यकीन नहीं होता कि मैं समस्या को समझता हूं।
डान ब्रिन

3
यह एक खाली फ़ंक्शन कॉल में क्यों लपेटा गया है? submitफ़ंक्शन $('#form')को आसपास के खाली फ़ंक्शन के बिना सीधे बाँधने में सक्षम नहीं होना चाहिए ? संपादित करें: डॉक्स सुझाव देते हैं कि आसपास के फ़ंक्शन कॉल की आवश्यकता नहीं है
पलक

@eykanal अच्छी बात है। मैंने आगे बढ़कर फंक्शन रैपर को हटाने के जवाब को एडिट किया और यह कन्फर्म किया कि इसे हटाने के साथ यह ठीक काम करता है।
जॉन श्नाइडर

3
@eykanal मैंने "खाली" फ़ंक्शन कॉल का उपयोग किया, क्योंकि यह jQuery के $(document).ready()फ़ंक्शन के लिए एक शॉर्टहैंड है , जो सुनिश्चित करता है कि submitईवेंट पूरा करने से पहले DOM पूरा हो गया है । यदि आपका JS पृष्ठ के निचले भाग पर है, तो यह आवश्यक नहीं है, लेकिन यदि यह <head>अनुभाग में है, तो आपको इसकी आवश्यकता है। देखें: stackoverflow.com/q/13062246/135108
दान Breen

23

मान लें कि आपके पास एक फॉर्म है:

<form id="myForm" action="foo.php" method="post">
   <input type="text" value="" />
   <input type="submit" value="submit form" />

</form>

आप onsubmitइस तरह से jQuery के साथ एक -event संलग्न कर सकते हैं :

$('#myForm').submit(function() {
  alert('Handler for .submit() called.');
  return false;
});

यदि आप return falseप्रपत्र को फ़ंक्शन के बाद सबमिट नहीं किया जाएगा, यदि आप सही लौटाते हैं या सामान्य रूप से सबमिट नहीं करेंगे।

अधिक जानकारी के लिए jQuery के दस्तावेज़ देखें ।


11

onclickइस तरह से फार्म जमा करने से पहले आप कुछ जावास्क्रिप्ट या jQuery कोड चलाने के लिए उपयोग कर सकते हैं :

<script type="text/javascript">
    beforeSubmit = function(){
        if (1 == 1){
            //your before submit logic
        }        
        $("#formid").submit();            
    }
</script>
<input type="button" value="Click" onclick="beforeSubmit();" />

18
लेकिन यह तब काम नहीं करता है, जब प्रपत्र में उदाहरण के लिए एक इनपुट फ़ील्ड होती है, जिसमें उपयोगकर्ता रिटर्न कुंजी दबा रहा होता है जो सबमिट ईवेंट को निकाल रहा होता है। यह आम तौर पर सबमिट इवेंट में सीधे संलग्न करना बेहतर होता है, ताकि आप यह सुनिश्चित कर सकें कि उपयोगकर्ता ने सबमिशन को निकाल दिया है या नहीं।
एक्मे

2
<इनपुट प्रकार = "सबमिट करें" मूल्य = "क्लिक करें ऑनमॉजवर =" पहले सोसाइट (); " />
अंसियोरी

5

सुनिश्चित करें कि सबमिट बटन "सबमिट" प्रकार का नहीं है, इसे एक बटन बनाएं। फिर कुछ जावास्क्रिप्ट को ट्रिगर करने के लिए ऑनक्लिक इवेंट का उपयोग करें। इससे पहले कि आप वास्तव में अपना डेटा पोस्ट करने से पहले आप जो चाहें कर सकते हैं।


3
फ़ॉर्म को कई तरीकों से सबमिट किया जा सकता है, जैसे कि कुछ फ़ील्ड में एंटर दबाना। एक बटन पर एक क्लिक पर बांधना, जिसे क्लिक नहीं किया जा सकता है, एक अच्छा विचार नहीं है। अन्य उत्तर बताएंगे कि कैसे आप बाँध onsubmitके रूप है, जो चाहे कितना फ़ॉर्म सबमिट किया जाता सक्रिय हो जाएगा।
जेसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.