2011-10-16 8 views
8

मुझे एक बटन मिला: जावास्क्रिप्ट: इनपुट प्रकार को हाइजैक कैसे करें = क्लिक व्यवहार पर सबमिट करें?

जब भी मैं इसे क्लिक करता हूं, यह एक रूप में सबमिट होता है।

मैं इस व्यवहार को हाइजैक करना चाहता हूं, इसलिए जब मैं क्लिक करता हूं, तो यह इसके बजाय एक जेएस फ़ंक्शन को कॉल करता है। मैं यह कैसे करु? मैंने जोड़ा:

$('input.submit').live('click', addFood); 

समस्या यह अभी भी फ़ॉर्म को सबमिट की गई है। जब मैं "टाइप =" सबमिट "हटा देता हूं, तो यह काम करता है।

मैं HTML कोड को हटाना नहीं चाहता हूं। यह सीएसएस से भी बाध्य है, और मैं सीएसएस को बदलना नहीं चाहता क्योंकि मुझे डर है यह खिलवाड़ अप =) की

तो सवाल यह है: कैसे बजाय सबमिट बटन का व्यवहार बदलने के लिए करते हैं तो यह बनाने के लिए प्रस्तुत नहीं करता है, लेकिन मेरी जावास्क्रिप्ट (JQuery) फ़ंक्शन को कॉल

+1

ओह, मैं सिर्फ महसूस किया कि मैं जरूरत एक "return false" मेरे addFoods समारोह में, अन्यथा यह फ़ंक्शन को कॉल करने और फार्म के लिए यह सबमिट करता है। समस्या सुलझ गयी! बिस्तर से बाहर =) –

+2

हिसाका: अपने प्रश्न का उत्तर देना ठीक है। –

उत्तर

14

लक्ष्य फार्म, नहीं सबमिट बटन

$("form").submit(function(e) { 

    e.preventDefault(); 
    e.returnValue = false; 

    // do things 
}); 
+3

यह समाधान Jquery 1.7 में बहिष्कृत किया गया था – cromanelli

10

बस इस उत्तर को अद्यतन रखने के लिए अद्यतन परिवर्तन:

$("form").live('submit', function(e) { 

e.preventDefault(); 
e.returnValue = false; 

// do things 

}); साथ

:

$("form").on('submit', function(e) { 

e.preventDefault(); 
e.returnValue = false; 

// do things 

});

$ (चयनकर्ता) .live() Jquery 1.7 में बहिष्कृत किया गया था और Jquery 1.9 में ढांचे से हटा दिया गया था।

Here's documentation

संबंधित मुद्दे