2009-06-15 15 views
12

(answers aggregated into another question)jQuery चयनकर्ता छिपी हुई फ़ील्ड

निम्नलिखित jQuery 1.3.2 कोड काम करता है से नहीं पढ़ सकते हैं

[इनपुट # ixd 236,434]

[इनपुट # ixd 236434]

हालांकि "छुपा" में इनपुट सेट करने से चयनकर्ताओं को काम करना पड़ता है। कोई सुराग?

<input type="hidden" value="236434" id="ixd" name='ixd' /> 

<script> 
console.log($('#ixd')); 
console.log($("input[name='ixd']")); 
</script> 

कंसोल पता चलता है:

[]

[]

उत्तर

27

सुनिश्चित नहीं हैं कि क्यों कि नाकाम रहने की जाएगी। मैं नियमित रूप से काम पर एक ही काम करता हूं, और यह फार्मफील्ड को छुपाए जाने के बावजूद काम करता है या नहीं।

शायद यह प्रयास करें:

<input type="hidden" value="236434" id="ixd" name='ixd' /> 

<script> 
    console.log($("#xid").val()) 
</script> 

है कि आप छिपा फ़ील्ड का मान मिल जाएगा। किसी फॉर्म फ़ील्ड से मान प्राप्त करने के लिए, .val() विधि का उपयोग करने की आवश्यकता है।

+2

+1: वह .val का उपयोग करना चाहिए() फ़ील्ड का मान पुनः प्राप्त करने के। –

+1

कोशिश की, मैं यह इंगित करने की कोशिश कर रहा था कि चयनकर्ता आउटपुट का उपयोग करने के बजाय काम नहीं कर रहे थे :) – Andy

+0

इसके अलावा, यह कोड या तो काम नहीं करता है! – Andy

2

यह कंसोल के साथ एक समस्या हो सकती है। मैंने एक परीक्षण चलाया और ऐसा लगता है कि यह अभी भी तत्व के उदाहरण को पकड़ लेता है। मैं बिल्कुल नहीं बता सकता कि आप यहां क्या करने की कोशिश कर रहे हैं।

तुम सिर्फ वस्तु मौसम मान्य करने के लिए कोशिश कर रहे हैं मिला था लंबाई संपत्ति

console.log($('#xid').length); 

जाँच आप फ़ील्ड का मान प्राप्त करने के लिए कोशिश कर रहे हैं तो वैल विधि का उपयोग

console.log($('#xid').val()); 

अंत में, यह संभव है कि आपके समाधान में डीओएम अभी तक पूरी तरह से लोड नहीं हुआ है। सुनिश्चित करें कि आप अपने तर्क को एक दस्तावेज़ के अंदर लपेट रहे हैं। पहले से कॉल करें।

$(document).ready(function() { 
    console.log($('#xid').val()); 
}); 
+0

बहुत धन्यवाद, यह समाधान है - लेकिन यह इस उदाहरण में क्यों काम नहीं करता है जब

1

यदि आप इसे एएसपी.Net में कर रहे हैं, तो अपने ब्राउज़र में व्यू स्रोत विकल्प के माध्यम से रनटाइम पर अपने नियंत्रण की आईडी देखें। आपको पता चलेगा कि आपकी कंट्रोल आईडी वह नहीं है जिसे आप उम्मीद करते हैं, उदाहरण के लिए, आपका नियंत्रण किसी सामग्री पृष्ठ में घोषित किया गया है। इस मामले में इसे एक आईडी असाइन किया जाएगा जो उसके मास्टर पेज द्वारा संचालित है। अपने jQuery में आईडी को हार्ड-कोडिंग करने के बजाय आप एएसपी.Net इनलाइन सिंटैक्स का उपयोग करके अपनी क्लाइंट आईडी संपत्ति का संदर्भ ले सकते हैं जो आपको मास्टर या कंटेंट पेज कंट्रोल पदानुक्रम में किसी भी बदलाव से भी बचाएगा।

तो ...

$('#<%= myHiddenControl.ClientID %>').val(); 

... की तुलना में एक बेहतर विकल्प है, हालांकि वे दोनों काम होगा ...

$('#ctl00_ContentPlaceHolder1_ctl00_ContentPlaceHolder1_myHiddenControl').val(); 

...।

0

ऊपर काम से कोई भी प्रयास करते हैं तो

$('#xid').attr('value'); 
संबंधित मुद्दे