मैं पूरी तरह जावास्क्रिप्ट के लिए नया हूँ और शायद और अधिक की तुलना में मैं चबाना कर सकते हैं की काट रहा हूँ, लेकिन मैं jQuery autcomplete विजेट मेरी रेल साइट पर काम कर पाने के कोशिश कर रहा हूँ कैसे सबमिट करें।jQuery स्वत: पूर्ण - आइटम लेबल देखने लेकिन आइटम मूल्य
मेरे पास "लिंक" नामक एक पृष्ठ है जहां मैं किसी व्यक्ति को एक लिंक को असाइन करने में सक्षम होना चाहता हूं। स्वतः पूर्ण का उपयोग करना मुझे एक टेक्स्टबॉक्स होना चाहिए जो स्वत: पूर्ण द्वारा सुझाए गए लोगों के नामों की एक सूची को छोड़ देता है, और जब चयनित होता है, तो व्यक्ति का नाम टेक्स्टबॉक्स में रहता है। लेकिन जब फॉर्म सबमिट किया जाता है, तो मैं नहीं चाहता कि व्यक्तियों के नाम को फॉर्म के साथ भेजा जाए, मैं चाहता हूं कि व्यक्ति आईडी फॉर्म के साथ भेजी जाए।
तो प्रश्न यह है कि व्यक्तियों का नाम एक बार चुने जाने के बाद, टेक्स्टबॉक्स में बने रहें, लेकिन एक बार सबमिट किए गए व्यक्ति आईडी सबमिट की जाती है।
रेल में, यह है कि कैसे मैं अपने व्यक्ति नियंत्रक से JSON डेटा की आपूर्ति कर रहा हूँ:
def index
if params[:term]
@people = Person.find(:all,:conditions => ['given_name LIKE ?', "#{params[:term]}%"], :limit => 5)
else
@people = Person.all
end
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @people.to_json(:only => [:id, :given_name]) }
end
end
ऊपर आउटपुट निम्नलिखित JSON टेक्स्ट:
[{"person":{"id":1,"given_name":"dale"}},{"person":{"id":2,"given_name":"sally"}},{"person":{"id":3,"given_name":"joe"}}]
jQuery स्वत: पूर्ण प्लगइन का उपयोग करना, कैसे क्या मेरे पास सुझाए गए मैचों में 'given_name' दिखाई देता है, एक बार चुने गए टेक्स्टबॉक्स में 'given_name' छोड़ दें, लेकिन फ़ॉर्म सबमिट होने पर 'आईडी' मान भेजें।
मुझे लगता है कि मुझे जावास्क्रिप्ट में निर्दिष्ट करने की आवश्यकता है कि कौन सा लेबल दिखाना है और क्या मूल्य भेजना है। जैसा कि मुझे बस जावास्क्रिप्ट का लटका मिल रहा है, अगर आप समझा सकते हैं कि आपका उत्तर कैसे काम करता है तो इसकी सराहना की जाएगी। धन्यवाद।
आपके उत्तर के लिए धन्यवाद। मुझे लगता है कि आपका समाधान काम करेगा, लेकिन मैं उम्मीद कर रहा था कि टेक्स्टबॉक्स में दिखाए गए एक से अलग मूल्य भेजने की क्षमता jQuery विजेट में बनाई जाएगी। ऐसा लगता है कि छिपे हुए क्षेत्र के बिना यह संभव होना चाहिए, लेकिन मैं कुछ समझ नहीं रहा हूं। यदि यह संभव नहीं है तो मैं छिपे हुए क्षेत्र समाधान के साथ रोल करूंगा। – Oscar
मैंने jQuery विजेट दस्तावेज़ों की फिर से समीक्षा की और आपका उत्तर सही है। टेक्स्टफील्ड में दिखाए गए एक से अलग मूल्य भेजने का तरीका (जैसे किसी व्यक्ति की आईडी में और व्यक्तियों का नाम नहीं चुना गया) एक छिपे हुए क्षेत्र के माध्यम से होता है। मुझे लगता है कि विजेट को छिपे हुए मूल्य की आपूर्ति करने की कोशिश करके मैं इसे बहुत जटिल बना रहा था। दस्तावेज़ों में उदाहरण स्पष्ट रूप से दिखाता है कि विजेट को एक छिपे हुए क्षेत्र के साथ संयोजन में उपयोग किया जाता है। धन्यवाद। – Oscar