2010-08-12 13 views
6

मैं एकाधिक फॉर्म इनपुट के मान प्राप्त करने का प्रयास कर रहा हूं, लेकिन समस्या यह है कि मेरे पास एक ही पृष्ठ पर कई समान रूप हैं और केवल सबमिट किए गए फॉर्म से इनपुट प्राप्त करना चाहते हैं, इसलिए मैं हूं 'यह' कीवर्ड का उपयोग कर।jQuery इस फॉर्म इनपुट को प्राप्त करें

$('form.contact_form').submit(function(e) { 
    var fname = $(this).children('input.fname').val(); 
    var email = $(this).children('input.email').val(); 
    var comment = $(this).children('input.comment').val(); 

हालांकि, जब मैं वे गलत मूल्यों लौट रहे हैं परीक्षण करने के लिए चर प्रवेश करने का प्रयास है, यह कहते हैं कि वे सभी अपरिभाषित हैं: यह मेरा कोड है। ऐसा करने का सही तरीका क्या होगा?

किसी भी मदद के लिए धन्यवाद: डी

+0

और बदले 'this' का उपयोग कर के, आप' वर $ लक्ष्य = $ (e.target) का उपयोग कर 'घटना के स्रोत तत्व प्राप्त करने के लिए विचार कर सकते हैं ... यह सिर्फ और वर्णनात्मक है। – CaffGeek

उत्तर

7

एचटीएमएल देखने की आवश्यकता है।

लेकिन, क्या वे फ़ॉर्म के बच्चों को निर्देशित करते हैं?
या .children के बजाय, आप .find का उपयोग कर रहे हैं क्योंकि वे निचले स्तर पर हैं?

+0

येस, बहुत बहुत धन्यवाद, बेवकूफ गलती, कोड से परिचित भी नहीं ... smarty का उपयोग करके और फ़ॉर्म एक और टेम्पलेट फ़ाइल में है इसलिए मैंने वहां देखने को भी नहीं सोचा था! किसी कारण से फॉर्म एक टेबल में है ... इसलिए इनपुट काफी गहराई से घोंसला था ..:/मैं कुछ मिनटों में आपका जवाब स्वीकार करूंगा! मुझे एटीएम नहीं जाने देंगे। – Becky

3

तुम भी 'इस' संदर्भ

var fname = $('input.fname', this).val(); 
2

उपयोग .find() का उपयोग कर सकते के रूप में चाड का सुझाव दिया।

$('form.contact_form').submit(function(e) { 
    var $this = $(this); 
    var fname = $this.find('input.fname').val(); 
    var email = $this.find('input.email').val(); 
    var comment = $this.find('input.comment').val(); 

}); 
+0

यह सबसे साफ वाक्यविन्यास है, कोई इरादा नहीं है। – g33kz0r

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