2012-11-27 7 views
11

मेरे पास निम्नलिखित http://jsfiddle.net/TgBzB/3/ है और जब उपयोगकर्ता ने कोई आइटम चुना है तो स्वत: पूर्ण फ़ील्ड को साफ़ करना चाहते हैं। निम्नलिखित कोड यह नहीं करता है: -चुनिंदा परिवर्तन ईवेंट पर स्वत: पूर्ण मूल्य साफ़ करें

$("#input").data("kendoAutoComplete").value(""); 

क्या यह संभव है?

//create AutoComplete UI component 
$("#input").kendoAutoComplete({ 
    dataSource: data, 
    filter: "startswith", 
    placeholder: "Select country...", 
    select: function(e) { 
     var dataItem = this.dataItem(e.item.index()); 
     $('#list').append("<li>" + dataItem + "</li>"); 
     //How do I clear the #input here? 
     $("#input").data("kendoAutoComplete").value(""); 
    } 
}); 

उत्तर

14

आपका कोड इनपुट को साफ़ करता है, लेकिन चयन घटना प्रारंभ में जाती है और मूल्य बाद में जोड़ा जाता है।

$("#input").kendoAutoComplete({ 
    dataSource: data, 
    filter: "startswith", 
    placeholder: "Select country...", 
    select: function(e) { 
     var dataItem = this.dataItem(e.item.index()); 
     $('#list').append("<li>" + dataItem + "</li>"); 
    }, 
    change: function(e) { 
     $("#input").data("kendoAutoComplete").value(""); 
    } 
}); 
+0

टा, यह एक थोड़ा और अधिक के बारे में सोचा जाना चाहिए था: – Rippo

+0

भी एक अच्छे क्लीनर रास्ता मिल गया है, लेकिन अभी भी इस रूप में स्वीकार किए जाते हैं जवाब रखेंगे ... – Rippo

+0

@Rippo हाँ अच्छा समाधान वास्तव में के बाद से इसके अलावा यह नहीं है पिछले मान को ढीला करें यदि फ़ील्ड कोई मूल्य चुनने के बिना फोकस को खो देता है (जो एक परिवर्तन ईवेंट ट्रिगर करता है लेकिन चयन नहीं करता है) ... –

3

यह भी एक और विकल्प है जो सिर्फ बजाय एक परिवर्तन घटना के बाद उसे साफ़ करने के रूप में अच्छी तरह से काम करता है, बस का उपयोग करके पहले स्थान पर प्रदर्शित होने से इसे रोकने के है: क्या आप क्या करना है change घटना में इनपुट स्पष्ट करने के लिए है e.preventDefault();

... 
select: function(e) { 
     var dataItem = this.dataItem(e.item.index()); 
     $('#list').append("<li>" + dataItem + "</li>"); 
     $("#input").data("kendoAutoComplete").value(""); 
     e.preventDefault(); 
} 
... 

अद्यतन है jsFiddle http://jsfiddle.net/rippo/TgBzB/8/

-3

बस इस का उपयोग करके आप स्वत: पूर्ण साफ कर सकते हैं

+०१२३५१६४१०६१
 $("#autoCompleteName").val(""); 
+0

काम नहीं करेगा! यदि एक से अधिक तत्व हैं – Asif

0
select: function(e) { 

.... e.preventDefault();

}

अभ्यस्त आप एक ही कुंजी शब्द (तुरंत टाइप) खोज करने के लिए अनुमति देते हैं। यदि आप कुछ मिलीसेकंड समय देने के साथ चरित्र द्वारा एक ही कुंजी शब्द चरित्र टाइप करते हैं तो यह काम करेगा।

0

यह ठीक काम करता है भले ही आप बहुविकल्पीय मान के लिए एमवीवीएम बाध्यकारी का उपयोग करें।

select: function(e) { 
    var widget = $('#widgetId').data('kendoMultiSelect'); 
    widget.input.val(''); 
} 
संबंधित मुद्दे