2012-02-19 14 views
97

प्रस्तुत करने से प्रपत्र को रोकने मैं jQuery का उपयोग कर प्रस्तुत करने से एक फार्म को कैसे रोकूं?JQuery का उपयोग करना -

मैं सब कुछ करने की कोशिश की - 3 विभिन्न विकल्पों मैं नीचे की कोशिश की देखते हैं, लेकिन यह सब काम नहीं करेगा:

$(document).ready(function() { 

      //option A 
      $("#form").submit(function(e){ 
       e.preventDefault(); 
      }); 

      //option B 
      $("#form").submit(function(e){ 
       stopEvent(e); 
      }); 

      //option C 
      $("#form").submit(function(){ 
       return false; 
      }); 
    }); 

क्या गलत हो सकता है?

<form id="form" class="form" action="page2.php" method="post"> 
     <!-- tags in the form --> 
     <p class="class2"> 
      <input type="submit" value="Okay!" /> 
     </p> 
    </form> 

वहाँ कुछ भी गलत यहाँ है: -

अद्यतन यहाँ मेरी एचटीएमएल है?

+0

अपने HTML दिखाएँ क्योंकि वहाँ (प्रकार प्रस्तुत पर दिलचस्प पेज) रोकथाम के साथ कुछ भी गलत नहीं है या आप इसे पोस्ट करते समय झूठी वापसी करते हैं, आपके चयनकर्ता के अलावा पूरी तरह से गलत है। – Sparky

+0

'झूठी वापसी; '' submit() 'के बाद मेरे लिए काम किया! मुझे एक ही समस्या हो रही थी –

उत्तर

141

दो बातें बाहर खड़े:

  • यह संभव है कि आपके प्रपत्र नाम form नहीं है। बल्कि # छोड़ने के द्वारा करने के लिए टैग देखें।
  • इसके अलावा e.preventDefault सही JQuery वाक्य रचना है, उदाहरण के लिए

    //option A 
        $("form").submit(function(e){ 
         e.preventDefault(); 
        }); 
    

विकल्प सी भी काम करना चाहिए।

<html> 
    <head> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 

     <script type='text/javascript'> 
     $(document).ready(function() { 
      //option A 
      $("form").submit(function(e){ 
       alert('submit intercepted'); 
       e.preventDefault(e); 
      }); 
     }); 
     </script> 
    </head> 

    <body> 
     <form action="http://google.com" method="GET"> 
      Search <input type='text' name='q' /> 
      <input type='submit'/> 
     </form> 
    </body> 
</html> 
+1

मैंने कोशिश की, अभी भी फॉर्म सबमिट कर रहा है ... :( –

+2

कुछ और गलत है। मैं इस तकनीक का दैनिक आधार पर उपयोग कर रहा हूं। सर्वश्रेष्ठ अनुमान यह होगा कि पृष्ठ पर जावास्क्रिप्ट त्रुटियां हैं, शायद चेक करें ?। Firebug के साथ यह –

+0

मैं फ़ायरबग में :( –

10

डिफ़ॉल्ट prevant करने के लिए/प्रपत्र प्रस्तुत करने को रोकने का उपयोग

e.preventDefault(); 

उपयोग

e.stopPropagation(); 

bubling करने के लिए घटना को रोकने के लिए: मैं

एक पूरा उदाहरण विकल्प बी से परिचित नहीं हूँ प्रपत्र जमा करने से रोकें 'वापसी झूठी' भी काम करना चाहिए।

+0

मैंने कोशिश की, अभी भी सबमिट किया जाने वाला ... –

+3

क्या bubling है से प्रस्तुत करना चाहते हैं? –

+0

यह उत्तर देखें क्योंकि jQuery इन्हें अलग-अलग संभालता है। http://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-false – Sparky

0

$("#form')id="form" साथ एक तत्व के लिए लग रहा है।

$('form') फ़ॉर्म तत्व

3

मैं भी यही समस्या थी के लिए लग रहा है। मैंने कोशिश की थी कि आपने जो कोशिश की थी। फिर मैं अपनी विधि को jquery का उपयोग न करने के लिए बदलता हूं लेकिन फॉर्म टैग में "ऑनसबमिट" विशेषता का उपयोग करके बदलता हूं।

<form onsubmit="thefunction(); return false;"> 

यह काम करता है।

लेकिन, जब मैं "() thefunction", इसे प्रस्तुत करने की प्रक्रिया पर रोक नहीं लगाता, तो मैं कर दिया जाना चाहिए केवल में झूठी वापसी मान डालने की कोशिश की "return false;" ऑनसममिट विशेषता में। इसलिए, मैंने निष्कर्ष निकाला है कि मेरे फॉर्म एप्लिकेशन को जावास्क्रिप्ट फ़ंक्शन से वापसी मूल्य नहीं मिल सकता है। मुझे इसके बारे में कोई जानकारी नहीं है।

14

आप शायद ओ पेज और $ का उपयोग कर ('फॉर्म') कुछ रूपों की है। प्रस्तुत() अपने पृष्ठ पर फार्म की पहली घटना के लिए इस घटना को कहते हैं।वर्ग चयनकर्ता का उपयोग करने के बजाय, या इस प्रयास करें:

$('form').each(function(){ 
    $(this).submit(function(){ 
     e.preventDefault(); 
     alert('it works!'); 
     return false; 
    }) 
}) 

या बेहतर यह संस्करण:

$(document).on("submit", "form", function(e){ 
    e.preventDefault(); 
    alert('it works!'); 
    return false; 
}); 
+1

मेरे मामले में, झूठी वापसी एक कुंजी थी। – artificis

0

आप प्रपत्र आईडी भूल जाते हैं, और यह

$('form#form').submit(function(e){ 
    e.preventDefault(); 
    alert('prevent submit');    
}); 
2

काम करता है मैं एक ही समस्या थी और मैंने इस तरह से हल किया (सुरुचिपूर्ण नहीं लेकिन यह काम करता है):

$('#form').attr('onsubmit','return false;'); 
,210

और यह मेरी राय में फायदा है, यह है कि आप स्थिति किसी भी समय आप चाहते हैं वापस कर सकते हैं: विशेषता id="form" बिना

$('#form').attr('onsubmit','return true;'); 
+0

हो सकता है कि प्रपत्र को वापस करने पर रोकथाम को हटाने के लिए थोड़ा और अधिक आरामदायक होगा '$ (' # form ')। RemoveAttr (' onsubmit ') ; ' – barbieswimcrew

0

जब मैं <form> टैग का उपयोग कर रहा हूँ और jQuery में सीधे अपने टैग नाम से यह फोन यह मेरे साथ काम करता है।
html फ़ाइल में अपने कोड:

<form action="page2.php" method="post"> 

और jQuery लिपि में:

$(document).ready(function() { 
     $('form').submit(function(evt){ 
      evt.preventDefault();// to stop form submitting 
     }); 
}); 
संबंधित मुद्दे