मेरे पास एक ही HTML पर दो टेक्स्टबॉक्स (इनपुट प्रकार टेक्स्ट) हैं जो एक ही स्वत: पूर्ण का उपयोग करते हैं। पहला टेक्स्ट बॉक्स ठीक काम करता है, लेकिन दूसरा टेक्स्ट बॉक्स परिणाम प्रस्तुत नहीं करता है। यह सर्वर के साथ संवाद करता है और मुझे परिणाम मिलते हैं, लेकिन प्रतिपादन समारोह को भी नहीं कहा जाता है। इनपुट के बीच एकमात्र अंतर यह है कि कोई एक div में है जो छुपा शुरू होता है और मैं जेड-ऑर्डर उच्च सेट करके और HTML को मास्क करके डायलॉग विंडो की तरह दिखता हूं।jQuery स्वत: पूर्ण आइटम प्रस्तुत नहीं किया गया है
यहां div के लिए सीएसएस है जहां दूसरा इनपुट बॉक्स स्थित है।
.windowBooking {
position:absolute;
width:450px;
/* height:200px; */
display:none;
z-index:9999;
padding:20px;
}
स्वत: पूर्ण कार्य:
$(".makeClass").autocomplete({
source: function (request, response) {
$('#Code').val(); //clear code value
$.ajax({
url: "myUrl",
type: 'POST',
contentType: "application/json; charset=utf-8",
dataType: 'json', //What kind of Result is expected. (Ex json, xml, etc)
data: "{'searchItem':'" + request.term + "'}",
success: function (data) {
var item = [];
var len = data.d.length;
for (var i = 0; i < len; i++) {
var obj = { name: data.d[i].MakeReport, code: data.d[i].MakeCode };
item.push(obj);
}
response(item);
}
})
},
focus: function (event, ui) {
$(this).val(ui.item.name);
return false;
},
select: function (event, ui) {
$('#Code').val(ui.item.code);
$('#Name').val(ui.item.name);
$(this).val(ui.item.name);
return false;
},
open: function() {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
},
minLength: 2,
delay: 250
}).data("autocomplete")._renderItem = function (ul, item) {
var temp = item.name;
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.name + "</a>")
.appendTo(ul);
};
इनपुट बॉक्स एक ही कक्षा का उपयोग स्वत: पूर्ण कॉल करने के लिए।
<input id="OtherMake" type="text" maxlength="30" size="20" class="makeClass"/> <!-- It works -->
<div id="dialogPlus" class="windowBooking">
:
<input type="text" id="MakeName" class="makeClass" /> <!-- doesn't work.-->
:
</div>
कोई विचार, एक इनपुट बॉक्स में क्यों प्रस्तुत करें और अन्य इनपुट बॉक्स में क्यों नहीं? मुझे दूसरे इनपुट बॉक्स पर स्पष्ट करने दें, काम करने वाली एकमात्र चीज़ रेंडरइटम फ़ंक्शन है जो किसी कारण से इसे निष्पादित नहीं किया जाता है। स्क्रीन पर, आप बहुत से अपरिभाषित देख सकते हैं लेकिन यदि आप किसी भी अपरिभाषित मान का चयन करते हैं तो इनपुट बॉक्स सही मान से भरा होता है।
एक ही समस्या थी। स्पष्टीकरण (उत्सुकता के लिए): आप कई तत्वों का चयन कर रहे हैं, और आपका '.data ('केवल पहले को डेटा सेट कर रहा है। इसलिए, आपको प्रत्येक' स्वतः 'को फिर से उपयोग करने और प्रत्येक स्वत: पूर्ण तत्व पर रेंडर फ़ंक्शन सेट करने की आवश्यकता है। –