क्या बूटस्ट्रैप टाइपहेड आइटम के लिए पूर्वनिर्धारित डेटा-स्रोत आइटम में उपयोगकर्ता के चयन को सीमित करना संभव है? तो यदि उपयोगकर्ता डेटा-स्रोत में कुछ ऐसा नहीं है, तो उन्हें एक संदेश प्रदर्शित किया जा रहा है? http://cruiseoutlook.com/testबूटस्ट्रैप टाइपहेड केवल सूची मानों की अनुमति दें
उत्तर
तो मैं समझता हूँ, जब Typeahead घटक फोकस खो देता है, उपयोगकर्ता को सतर्क कर दिया जाना चाहिए कि अपने इनपुट अमान्य है अगर यह सूची में नहीं है:
यहाँ डेमो है?
var myData = [...]; // This array will contain all your possible data for the typeahead
$("#my-type-ahead").typeahead({source : myData})
.blur(validateSelection);
function validateSelection() {
if(source.indexOf($(this).val()) === -1)
alert('Error : element not in list!');
}
बस तथ्य यह है कि indexOf
IE6-8 में लागू नहीं है के बारे में सावधान रहना होगा:
कोड इस प्रकार कुछ इस तरह हो जाएगा। लेकिन shims पाया जा सकता है, उदाहरण के लिए: Best way to find if an item is in a JavaScript array?।
jquery और सैमुअल के समाधान का उपयोग करके मुझे लगता है कि आप आईई समस्या से उबरेंगे। करने के लिए अपने validateSelecion समारोह बदलें:
function validateSelection() {
if ($.inArray($(this).val(), myData) === -1)
alert('Error : element not in list!');
}
बाकी छोड़ दो क्योंकि शमूएल ने कहा।
मैं एक ही मुद्दे में भाग गया लेकिन मेरी स्थिति में मेरा मेरा डेटा रिमोट था। ब्लडहाउंड में वास्तव में कोई अच्छा हुक नहीं है जिसे मैं वर्तमान में जानता हूं जो आपको ऐसा करने देता है, लेकिन आप AJAX पूर्ण कॉलबैक में हुक कर सकते हैं और मैन्युअल रूप से एक वैध इनपुट कैश बना सकते हैं, और उसके बाद परिवर्तन/धुंध पर इसके खिलाफ जांच कर सकते हैं।
var myData = new Bloodhound({
remote: {
url: '/my/path/%QUERY.json',
ajax: {
complete: function(response){
response.responseJSON.forEach(function (item) {
if (myData.valueCache.indexOf(item.value) === -1) {
myData.valueCache.push(item.value);
}
});
}
}
}
});
myData.valueCache = [];
myData.initialize();
$('#artists .typeahead').typeahead(null, {
source: myData.ttAdapter()
}).bind('change blur', function() {
if (myData.valueCache.indexOf($(this).val()) === -1) {
$(this).val('');
}
});
मैं थोड़ा अलग तरह से इस समस्या का समाधान - समय की सबसे आप सुझाए गए विकल्पों में आईडी पर कब्जा करने,, बाद में एक वेब सेवा कॉल करने के लिए पोस्ट करने के लिए आदि की जरूरत है
मैं बाहर खाली करने का निर्णय लिया एक छुपा फ़ील्ड जब टाइपएहेड एसिंक कॉल प्रारंभ होता है, और छिपे हुए फ़ील्ड का मान datum.id पर स्वत: पूर्ण या चयनित टाइपहेड ईवेंट पर सेट करता है।
फॉर्म सबमिट करते समय, मैं बस जांचता हूं कि छुपा फ़ील्ड का मूल्य है या नहीं, अगर ऐसा नहीं होता है, तो उपयोगकर्ता ने कभी भी सुझाए गए विकल्प का चयन नहीं किया है।
मैं Typeahead क्षेत्र के नाम पर आधारित यह करने के लिए एक _ id जोड़कर छिपी हुई फ़ील्ड नाम है, और उसके बाद जोड़कर onAutocompleted में इस कोड और onSelected कार्यों
मैं उन कार्यों निर्दिष्ट प्रयोग किया है:
.on('typeahead:selected', onAutocompleted)
.on('typeahead:autocompleted', onSelected)
कोड में जो इनपुट फ़ील्ड में .typehead कार्यक्षमता जोड़ता है।
var n = $(this).attr('name')+'_id';
$('input[name="' + n + '"]').val(datum.id);
वहाँ तीन पैरामीटर स्वतः पूर्ण और चयनित काम करता है, घटना, गृहीत, और नाम के लिए पारित कर रहे हैं होने के बारे में Typeahead प्रलेखन वार्ता, लेकिन मैं नाम कभी नहीं देखा था पारित किया जा रहा है, और यही कारण है कि मैं प्रयोग किया जाता है फ़ील्ड का नाम पाने के लिए $ (यह) .attr ('name') तंत्र।
यह काम नहीं करेगा क्योंकि अगर मैं सूची से कोई आइटम चुनता हूं, तो सुनिश्चित करें कि आपको यह आईडी मिल जाएगी। लेकिन क्या होगा यदि मैं उस आइटम को मिटा दूं और कुछ अस्पष्ट लिखूं?इसका मतलब है कि आप पिछले चयन की आईडी में गुजरेंगे और वास्तविक मूल्य के विपरीत गिब्बिश भेज देंगे। – bangbang
- 1. बूटस्ट्रैप टाइपहेड - बदलते स्रोत
- 2. ट्विटर बूटस्ट्रैप टाइपहेड घटक
- 3. की अनुमति दें केवल सकारात्मक दशमलव संख्या
- 4. बूटस्ट्रैप टाइपहेड गतिशील रूप से
- 5. ट्विटर बूटस्ट्रैप टाइपहेड फोर्स चयन
- 6. बूटस्ट्रैप टाइपहेड केवल पहला अक्षर प्रदर्शित करता है
- 7. केवल देश के भीतर पहुंच की अनुमति कैसे दें
- 8. बूटस्ट्रैप टाइपहेड AJAX परिणाम प्रारूप - उदाहरण
- 9. टेक्स्टबॉक्स में केवल अल्फान्यूमेरिक को अनुमति दें
- 10. अनुरोध विशिष्ट IP से आने वाले की अनुमति दें केवल
- 11. Django मॉडल: केवल मॉडल में एक प्रविष्टि की अनुमति दें?
- 12. जावास्क्रिप्ट नियमित अभिव्यक्ति, केवल संख्याओं और अल्पविरामों की अनुमति दें
- 13. पायथन लिपि के केवल एक उदाहरण की अनुमति दें?
- 14. केवल टेक्स्टबॉक्स में विशिष्ट वर्णों की अनुमति दें
- 15. की अनुमति दें केवल संख्या एक पाठ बॉक्स
- 16. TinyMCE मान्य तत्व: केवल विशिष्ट सीएसएस नियमों की अनुमति दें
- 17. ट्विटर बूटस्ट्रैप टाइपहेड और jQuery मान्य
- 18. निर्देशिका की अनुमति दें एक आईपी
- 19. ट्विटर बूटस्ट्रैप: कोई मिलान के लिए टाइपहेड फ़ंक्शन
- 20. उपयोगकर्ता आयनिस स्तर की अनुमति कैसे दें?
- 21. एसक्यूएल सर्वर: स्कीमा की अनुमति कैसे दें?
- 22. web2py - बाहरी पहुंच की अनुमति दें - कैसे?
- 23. mongoid अद्वितीय अनुक्रमणिका डुप्लिकेट मानों की अनुमति
- 24. बूटस्ट्रैप टाइपहेड: पहले आइटम के मजबूर चयन को हटाएं
- 25. बूटस्ट्रैप टाइपहेड परिणाम एक div में संभव है, संभव है?
- 26. अनुमति दें प्रमाणीकरण
- 27. अनुमति दें - नियमित अभिव्यक्ति
- 28. सूची <T> क्यों है? इसके लिए अपनी सूची को संशोधित करने की अनुमति दें?
- 29. केवल एक समय में एक सत्र को अनुमति दें
- 30. केवल Google सीएसई को अनुमति दें और ROBOTS.txt
यदि उपयोगकर्ता आइटम का चयन करने के लिए माउस का उपयोग करता है, तो फ़ील्ड इनपुट फ़ील्ड में रखे जाने से पहले क्षेत्र को धुंधला कर देता है, जिससे गलती चेतावनी होती है। –
आप इस काम को अजाक्स संस्करण के साथ कैसे बनायेंगे? – EralpB