2012-02-24 13 views
19

मैं ट्विटर बूटस्ट्रैप टाइपहेड() के साथ किए गए चयन को स्वतः कैसे सबमिट करूं ??बूटस्ट्रैप टाइपहेड() स्वत: पूर्ण पर चयन सबमिट करें?

http://twitter.github.com/bootstrap/javascript.html#typeahead

+1

आप तो अभी भी देख रहे हैं, मैंने टाइपएहेड प्लगइन में कुछ कार्यक्षमता जोड़ने के लिए एक एक्सटेंशन बनाया है जैसा आपने पूछा है। https://github.com/tcrosen/Bootstrap-Typeahead- एक्सटेंशन – Terry

उत्तर

3

स्पष्ट रूप से कुछ गिट मर्ज अनुरोध हैं। यह नौकरी करता है और आपको टाइपहेड पर ऑब्जेक्ट्स की एक सरणी भेजने की अनुमति देता है: https://github.com/twitter/bootstrap/pull/1751

+0

या मैं समझता हूं कि यह सबसे अच्छा संभव समाधान नहीं है। लेकिन यह एकमात्र चीज थी जिसे मैं अस्थायी सुधार के रूप में सोच सकता था। – Jako

7

सबसे अच्छा समाधान नहीं हो सकता है, लेकिन मैं सिर्फ स्थानीय स्तर पर मेरी Typeahead सेटअप पर इस की कोशिश की और यह काम किया।

अपने Typeahead कुछ इस तरह दिखता है ...

<form id="test-form" method="post" action=""> 
      <input id="test-input" type="text" data-provide="typeahead" 
      data-source='["1","2',"3"]' /> 
    </form> 

तो फिर तुम इस जावास्क्रिप्ट के साथ प्रस्तुत कर सकते हैं।

<script type="text/javascript"> 
     $('#test-input').change(function() { 
      $('#test-form').submit(); 
     }); 
    </script> 
+2

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

0

मैंने इनपुट पर blur कॉलबैक जोड़ा। ध्यान रखें कि आपको एक छोटी अवधि के लिए प्रतीक्षा करने की आवश्यकता है, कि टाइपहेड इनपुट में मान बदल सकता है और blur कॉलबैक उससे पहले नहीं कहा जाता है। यह सिर्फ एक कामकाज है, लेकिन यह काम करता है।

$('input.myTypeaheadInput').blur(function(e) { 
    window.setTimeout(function() { 
     window.console && console.log('Works with clicking on li item and navigating with the keyboard. Yay!'); 
    }, 50); 
}); 
21

एक साफ रास्ता updater कॉलबैक का उपयोग कर रहे है:

input.typeahead({ 
    'source' : ['foo', 'bar'], 
    'updater' : function(item) { 
     this.$element[0].value = item; 
     this.$element[0].form.submit(); 
     return item; 
    } 
}); 

जब उपयोगकर्ता एक विकल्प का चयन करता है (या तो माउस क्लिक या कुंजीपटल द्वारा), कॉलबैक इनपुट बॉक्स भरता है और फार्म भेजता है।

+0

अफसोस की बात यह शानदार विकल्प हाल के निर्माण में दिखाई नहीं दे रहा है .. –

10

आप बाहरी typeahead.js प्लगइन (बूटस्ट्रैप 3 के लिए अनुशंसित) का उपयोग करते हैं:

चयन सिर्फ कस्टम घटनाओं का उपयोग पर एक फार्म को गति प्रदान करने के लिए।

$('#my-input') 
    .typeahead({/* put you options here */}) 
    .on('typeahead:selected', function(e){ 
    e.target.form.submit(); 
    }); 

कस्टम घटनाओं here और डेमो के बारे में JSfiddle बारे में अधिक जानकारी।

+0

ने मेरे जीवन को बचाया @HaNdTriX – Kathan

+0

मुझे यह सुनकर खुशी हुई। :-) – HaNdTriX

0

Typeahead डेटा चयन से एक HTML के रूप में एक छिपी हुई फ़ील्ड की कि मान के लिए, मैं निम्नलिखित किया:

$('#prefetch').typeahead({ 
hint: true, 
highlight: true, 
minLength: 1 
}, 
{ 
name: 'trees', 
source: trees, 
limit: 15 
}).on('typeahead:selected', function(e) { 
var result = $('#prefetch').val() 
$('#formpane input[name=\"myID\"]').val(result) 
}); 

संदर्भ के लिए, एचटीएमएल कोड है:

<body> 
<div id="formpane"> 
    <form action="/thanks" method="POST"> 
    <input class="typeahead" type="text" placeholder="select categories" id="prefetch"> 
    <button type="submit">Submit</button> 
    <input type="hidden" name="myID" /> 
    </form> 
</div> 
<script type="text/javascript" src="js_file_above.js"></script> 
</body> 
संबंधित मुद्दे