2009-12-30 10 views
5

autocomplete है, लेकिन यह किसी आइटम के चयन को मजबूर नहीं करता है। मुझे ऐसा कुछ चाहिए लेकिन इसे "सबमिट" करने से पहले किसी आइटम को चुनने के लिए मजबूर करना होगा।क्या कोई jQuery स्वत: पूर्ण प्लगइन है जो किसी आइटम के चयन को मजबूर करेगा?

क्या यह अस्तित्व में है?

+0

नहीं किया जा सकता तुम सिर्फ हेवन ड्रॉपडाउन 'onChange' पर एक "श्रोता" के "change" event उपयोग कर सकते हैं? यह बदल गया है, इसका मतलब है कि कुछ चुना गया है, और इस प्रकार आप सबमिट बटन को सक्षम कर सकते हैं। – Steven

उत्तर

2

यह .blur के साथ अपने समाधान है (इसके अलावा मैं नाम का उपयोग | आईडी जोड़े)

jQuery("#username").autocomplete(
    "/yii_app/stock/suggestUser", 
    { 
     'mustMatch':true, 
     'multiple':false, 
     'formatItem':function(result, i, num, term) { 
      return '<small>'+result[1]+'</small>&nbsp;&nbsp;&nbsp;'+ result[0]; 
     } 
    } 
).result(
    function(event,item) { 
     $("#user_id").val(item[1]); 
    } 
).blur(
    function() { 
     $("#user_id").val(''); 
     $(this).search(); 
    } 
); 

user_id एक छिपा इनपुट क्षेत्र है, उपयोगकर्ता नाम एक पाठ इनपुट क्षेत्र है ajax परिणाम निम्न स्वरूप का उपयोग करता है: user1name | user1id \ n user2name | user2id \ n

+1

मुझे यह समझ में नहीं आता कि इस तरह कुछ कैसे 4 अपवॉट प्राप्त कर सकता है। ".result" को कॉल फ़ायरफ़ॉक्स में सिंटैक्टिकल मस्टर भी पास नहीं करता है। और "खोज" करने के लिए एक कॉल है, जो स्पष्ट रूप से मौजूद नहीं है। कितना निराशाजनक। – AKWF

+0

यह स्क्रिप्ट बस काम नहीं करती है। $ .result() क्या है? – crab

0

validation प्लगइन के साथ संयोजन में इसका उपयोग करें। सत्यापन प्लगइन के लिए बस क्षेत्र required बनाएं।

+0

जो अवांछित सामग्री को हल नहीं करता है –

1

विकल्प का उपयोग करें:

mustMatch:true, 

यह उपलब्ध नही है बासिस्टेंस स्वत: पूर्ण प्लगइन में ई। Ii नहीं जानता कि यह jQuery स्वत: पूर्ण या बासिस्टेंस के स्वतः पूर्ण का हिस्सा है, लेकिन यह काम करता है!

0

तुम भी में घटना

$('Autocomplete').autocomplete({ 
      select: function(event, ui) { 
         $('submit').show(); 
        } 
}); 
1

प्रस्तुत निर्मित यह मेरे वर्तमान समाधान का उपयोग है का उपयोग कर सकते jQuery UI के autocomplete:

$('#some-input').autocomplete({ 
     source: 'some-url', 
     autoFocus: true, 
     minLength: 2, 
     select: function(event, ui) { 
      //remember the selected item 
      $('#some-input') 
       .data('selected-item', ui.item.label); 
     } 
    }).blur(function() { 
     var value = $('#some-input').val(); 
     //check if the input's value matches the selected item 
     if(value != $('#some-input').data('selected-item')) { 
      //they don't, the user must have typed something else 
      $('#some-input') 
       .val('') //clear the input's text 
       .data('selected-item', ''); //clear the selected item 
     } 
    }); 

हर बार कलंक घटना शुरू हो रहा है, इनपुट के मूल्य है पहले उठाया गया है की जांच की। यदि इसे नहीं चुना गया है (आप जानते हैं कि चयन ईवेंट कभी ट्रिगर नहीं हुआ है), 'चयनित-आइटम' चर इनपुट के मान से मेल नहीं खाएगा। फिर आप जो चाहें कर सकते हैं (मैं इनपुट साफ़ करता हूं, लेकिन आप कुछ और कोशिश कर सकते हैं)।

+1

यदि आप $ ("# कुछ इनपुट ') जोड़ते हैं। वैल (ui.item.label); चयन कॉल पर, आपका समाधान काम करेगा। – AKWF

4

आप स्वत: पूर्ण

 var availableTags = [ 
      "ActionScript", 
      "AppleScript" 
     ]; 
     $("#tags").autocomplete({ 
      source: availableTags, 
      change: function (event, ui) { 
       if(!ui.item){ 
        //http://api.jqueryui.com/autocomplete/#event-change - 
        // The item selected from the menu, if any. Otherwise the property is null 
        //so clear the item for force selection 
        $("#tags").val(""); 
       } 

      } 

     }); 
संबंधित मुद्दे