2012-12-06 23 views
30

द्वारा प्रपत्र प्राप्त करने के लिए मैं निम्नलिखित है html:jQuery चयनकर्ता नाम

<form name="frmSave">..</form> 

बस पता करने के लिए, मैं सक्षम नहीं एक id या कुछ और जोड़ने के लिए तो मैं आसानी से प्राप्त कर सकते हैं formhtml संशोधित करने के लिए कर रहा हूँ एक चर में तत्व।

यह है कि मैं क्या यह नाम है द्वारा form तत्व प्राप्त करने के लिए कोशिश की है है:

var frm = $('form[name="frmSave"]'); 
console.log(frm); 

(लेकिन मुझे लगता है यह जो क्या गलत है form अंदर नाम frmSave के साथ एक बच्चों तत्व प्राप्त करने की कोशिश करेंगे मुझे जरूरत है)।

मैं यह कैसे प्राप्त कर सकते हैं, यह सिर्फ द्वारा एक form एक चयनकर्ता के साथ name प्राप्त करने के लिए संभव है?


अद्यतन: मैं बच्चों तत्वों हो रही के रूप में ईसाई वरगा स्पष्टीकरण का कहना है के आधार पर अपने स्रोत कोड में गलत तरीके से कर रहा था। हालांकि, मैंने इसे सही तरीके से यहां रखा, मेरा बुरा।

+3

आपका कोड का उपयोग कर रहा सही है। –

+0

क्या आप वाकई इसे निष्पादित करने से रोकने वाले पेज पर कोई अन्य जेएस त्रुटियां नहीं हैं? कंसोल लॉग की जांच करें। – webnoob

+1

मुझे लगता है कि यह सही था लेकिन किसी कारण से यह कंसोल पर 'शून्य' प्रिंट करता है, इसलिए मैंने पूछा, शायद दूसरी चीज समस्या हो सकती है लेकिन मैं सबकुछ फिर से जांचूंगा। –

उत्तर

56

$('form[name="frmSave"]') सही है। आपने बताया कि आपने सोचा था कि यह फॉर्म के अंदर frmsave नाम वाले सभी बच्चों को मिलेगा; $('form [name="frmSave"]');

$('form[name="frmSave"]') का शाब्दिक अर्थ है , नाम frmSave साथ सभी रूपों को खोजने कोई Combinator शामिल न होने के कारण: यह केवल अगर वहाँ एक अंतरिक्ष या फार्म और चयनकर्ता, जैसे के बीच अन्य Combinator था क्या होगा।

6

आपके पास कोई संयोजक नहीं है (स्पेस, >, + ...) इसलिए कोई भी बच्चा कभी भी शामिल नहीं होगा।

हालांकि, अगर आप एक ID और getElementById का उपयोग करके jQuery के लिए जरूरत से बचने के सकता है, या आप पुराने getElementsByName("frmSave")[0] या यहां तक ​​कि पुराने document.forms['frmSave'] इस्तेमाल कर सकते हैं। jQuery यहां अनावश्यक है।

+0

'getElementsByName'। अच्छा लगा। –

+0

'document.querySelector (" form [name = 'frmSave'] ") 'भी काम करेगा, लेकिन केवल नए ब्राउज़र में। –

+0

मुझे पता है कि यह अनावश्यक है लेकिन मैं अन्य कोड के साथ काम कर रहा हूं जिसके लिए jQuery की आवश्यकता है इसलिए मैं इसका उपयोग कर रहा हूं, आपके स्पष्टीकरण btw +1 के लिए धन्यवाद। –

5
// this will give all the forms on the page. 

    $('form') 

    // If you know the name of form then. 

    $('form[name="myFormName"]') 

    // If you don't know know the name but the position (starts with 0) 

    $('form:eq(1)') // 2nd form will be fetched. 
1

का पता लगाने अगर प्रपत्र मौजूद है के लिए, मैं

if($('form[name="frmSave"]').length > 0) { 
    //do something 
} 
संबंधित मुद्दे