2011-12-03 8 views

उत्तर

1
var values = inputs.map(function() { 
          var obj = {}; 
          obj[ this.id ] = $(this).val(); 
          return obj; 
         }).get(); 

:

var inputs = $("[id^='field']"); 
var values = inputs.map(function() { 
          return $(this).val(); 
         }).get(); 

मैं [आईडी, मूल्य] के एक साहचर्य सरणी प्राप्त करना चाहते हैं यदि वे select या radio इनपुट नहीं हैं, तो $(this).val() के बजाय this.value का उपयोग करें।

या यदि आप केवल एक वस्तु चाहते थे, तो .each का उपयोग करें।

var obj = {}; 
inputs.each(function() { 
          obj[ this.id ] = $(this).val(); 
         }); 

आप वस्तुओं की एक सरणी चाहते थे, और अगर आपके इनपुट उनके name संपत्ति है, तो आप भी serializeArray इस्तेमाल कर सकते हैं तो।

var values = inputs.serializeArray(); 
+1

यह ऑब्जेक्ट की श्रृंखला का निर्माण करेगा। मुझे लगता है कि वह सिर्फ एक वस्तु प्राप्त करना चाहता है। –

+0

@ फ़ेलिक्सक्लिंग: मुझे लगता है कि आप सही हैं। मैं तब तक अपडेट करूंगा जब तक कि कोई और मुझे मारता न हो। ;) – RightSaidFred

+0

@ राइटसाइडफ्रेड: हां, फ़ेलिक्स सही है, मैं ऑब्जेक्ट की एक सरणी नहीं चाहता हूं। – Homam

5

.map() एक सरणी देता है, इसलिए यदि आप कुंजी के रूप में आईडी मूल्यों के साथ एक वस्तु चाहते हैं, तो आप इसे इस प्रकार कर सकते हैं:

function getFieldValues() { 
    var values = {}; 
    $("[id^='field']").each(function() { 
     values[this.id] = this.value; 
    }); 
    return(values); 
} 
+1

जानना उत्सुक है कि आप 'वापसी (मान) 'का उपयोग क्यों कर रहे हैं। यह एक समारोह की तरह दिखता है। – RightSaidFred

+2

रिटर्न सिंटैक्स एक व्यक्तिगत पसंद है क्योंकि दोनों कानूनी हैं (माता-पिता के साथ या बिना)। कुछ परिस्थितियां हैं (जब आपके पास एक और जटिल कथन है कि आप लौट रहे हैं) कि माता-पिता उचित संचालन के लिए आवश्यक हैं, इसलिए मैं हमेशा उनका उपयोग करना चुनता हूं। – jfriend00

+0

मैं देखता हूं। मैं जो नकारात्मकता देखता हूं वह यह है कि सिंटैक्स का प्रकार शुरुआती भ्रमित कर सकता है। भ्रम का एक आम बिंदु 'टाइपोफ़ x' बनाम' टाइपोफ (x) 'है। – RightSaidFred

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