बटन क्लिक पर फ़ॉर्म ऑटो सबमिट अक्षम करें


180

मेरे पास एक HTML फॉर्म है जहां मैं कई बटन का उपयोग करता हूं। समस्या यह है कि मैं चाहे जिस भी बटन पर क्लिक करूं, वह फॉर्म जमा हो जाएगा, भले ही वह बटन "सबमिट" प्रकार का न हो। उदाहरण के लिए बटन जैसे:, <button>Click to do something</button>फॉर्म सबमिट करने में।

e.preventDefault()इनमें से हर एक बटन को करना काफी दर्दनाक है ।

मैं jQuery और jQuery UI का उपयोग करता हूं और वेबसाइट HTML5 में है।

क्या इस स्वचालित व्यवहार को अक्षम करने का कोई तरीका है?

जवाबों:


458

बटन की तरह <button>Click to do something</button> कर रहे हैं बटन सबमिट करें।

type="button"इसे बदलने के लिए सेट करें । type="submit"डिफ़ॉल्ट है (जैसा कि HTML अनुशंसा द्वारा निर्दिष्ट किया गया है )।


24
एक दिन की नींद व्यर्थ मेरे कोड फिक्सिंग खो दिया क्योंकि मैं इस सरल विनिर्देश नहीं जानता था!
राजपाट

4
पैलडॉटन की धारणा को गूँजते हुए, मुझे खुशी है कि मुझे यह नोट त्वरित Google खोज के बाद मिला और घंटे नहीं मारे गए। बहुत पता है, बहुत धन्यवाद।
ब्रुकलीनस्वेब

2
@NiketJoshi - यह कथन इस प्रश्न के उत्तर के साथ कुछ भी करने के लिए प्रकट नहीं होता है। यदि आपके पास एक नया प्रश्न है, तो एक पूछें, लेकिन सुनिश्चित करें कि आप एक स्पष्ट समस्या बयान और न्यूनतम प्रतिलिपि प्रस्तुत करने योग्य उदाहरण प्रदान करते हैं ।
क्वेंटिन

19

आप बस उसी तरह वापसी का उपयोग करने की कोशिश कर सकते हैं (रिटर्न असत्य डिफ़ॉल्ट व्यवहार को हर DOM तत्व पर):

myform.onsubmit = function ()
{ 
  // do what you want
  return false
}

और फिर myform.submit () का उपयोग करके अपना फॉर्म सबमिट करें

या वैकल्पिक रूप से:

mybutton.onclick = function () 
{
   // do what you want
   return false
}

इसके अलावा, यदि आप type="button"अपने फॉर्म का उपयोग करते हैं तो सबमिट नहीं किया जाएगा।


8

<button>वास्तव में बटन जमा करते हैं, उनकी कोई अन्य मुख्य कार्यक्षमता नहीं है। आपको टाइप टू बटन सेट करना होगा।
लेकिन अगर आप अपने ईवेंट हैंडलर को नीचे की तरह बांधते हैं, तो आप सभी बटन को लक्षित करते हैं और इसे प्रत्येक बटन के लिए मैन्युअल रूप से नहीं करना पड़ता है!

$('form button').on("click",function(e){
    e.preventDefault();
});

यह है e.preventDefault();
21

0

यदि आप विशेषता के रूप में सीधे इनपुट में जोड़ना चाहते हैं, तो इसका उपयोग करें

 onclick="return false;" 

<input id = "btnPlay" type="button" onclick="return false;" value="play" /> 

इससे फॉर्म सबमिट व्यवहार को रोका जा सकेगा


0

और एक:

if(this.checkValidity() == false) {

                $(this).addClass('was-validated');
                e.preventDefault();
                e.stopPropagation();
                e.stopImmediatePropagation();

                return false;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.