jQuery

2010-05-23 3 views
28

में किसी विशिष्ट फ़ॉर्म में सबमिट बटन को कैसे ढूंढें I मैं एक विशिष्ट रूप में सबमिट बटन की jQuery ऑब्जेक्ट प्राप्त करने का प्रयास करता हूं (उसी पृष्ठ पर कई रूप हैं)।jQuery

मैं फॉर्म तत्व स्वयं प्राप्त करने में कामयाब रहा। ऐसा कुछ दिखता है:

var curForm = curElement.parents("form"); 

वर्तमान तत्व में HTMLInputElement संदर्भ है। फ़ॉर्म के तत्व प्रस्तुत करने के लिए मैंने कोशिश की कई तकनीकों:

var curSubmit = curForm.find("input[type='submit']"); 
var curSubmit = $(curForm).find("input[type='submit']");  
var curSubmit = curForm.find(":submit"); 
var curSubmit = $(curForm).find(":submit");  
var curSubmit = $(curSubmit, "input[type='submit']"); 

परिणाम हमेशा एक ही (और बहुत अजीब) होता है। परिणाम जो मुझे मिलता है वह वही तत्व है जो "curlement" है।

तो मैं सही सबमिट बटन कैसे प्राप्त कर सकता हूं?

+0

सबमिट किए जाने वाले सभी इनपुट प्राप्त करने के लिए यह काम करना चाहिए। क्या आप http://JSBin.com पर शायद एक उदाहरण दिखा सकते हैं? – SLaks

उत्तर

51

निम्नलिखित काम करना चाहिए:

var submit = curElement.closest('form').find(':submit'); 
+6

+1 के लिए: सबमिट करें! विशेषता चयनकर्ताओं से उन लोगों का उपयोग करना इतना आसान है। –

13

यह काम करना चाहिए:

var curSubmit = $("input[type=submit]",curForm); 

संपादित करें: नोट चयनकर्ता

1

BTW में लापता ': आखिरी चयनकर्ता अजीब लग रहा है। यह प्रत्येक input[type=submit] टैग में प्रत्येक curSubmit (एचएम?) का चयन करता है। मामले में

$(curElement.closest('form').get(0).elements).filter(':submit') 
2

क्योंकि एक एचटीएमएल 5 सबमिट बटन प्रपत्र टैग http://www.w3.org/TR/html-markup/input.submit.html#input.submit.attrs.form से बाहर हो सकता है, तो आप इसे खोजने के लिए निम्न कोड का उपयोग कर सकते सबमिट किए जाने के बाद फॉर्म, आपको निम्न उपयोगी मिल सकता है ... एकाधिक क्लिक को रोकने के लिए फ़ॉर्म सबमिट करने के बाद सबमिट बटन को अक्षम करने के लिए इसका उपयोग करता हूं।

$("form").submit(function() { 
    if ($(this).valid()) { // in case you have some validation 
    $(this).find(":submit").prop('disabled', true); 
    $("*").css("cursor", "wait"); // in case you want to show a waiting cursor after submit 
    } 
}); 
+1

मुझे नहीं पता कि आप नीचे क्यों मतदान कर चुके हैं, यही वह जवाब है जिसे मैं ढूंढ रहा था। धन्यवाद! –

0

आप को खोजने के लिए की सबमिट बटन हैं: हो सकता है आप का मतलब var curSubmit = $("input[type=submit]", curForm);

2

यह मेरे लिए काम करता है:

var curSubmit = $("input[type=submit]",this); 

जहां इस मतलब मौजूदा फार्म प्रस्तुत

पूर्व के लिए। सबमिट किए गए बटन का नाम और

$("form").on("submit", function(event) { 
    event.preventDefault(); 
    var data = $(this).serialize(); //all input variables 
    console.log(data); //print data in console 
    var submit = $("input[type=submit]",this).attr('name'); 
    alert(submit); // name of submit button 
}); 
+0

पहले उदाहरण में .. क्या यह 'सादा' के बजाय '$ (यह) नहीं होना चाहिए? – Pixel1002

+0

@ पिक्सेल 1002 $ इस के आसपास है और "इनपुट [टाइप = सबमिट]" –