我有一个下拉列表,其中包含国家/地区(来自xml文件)。
选择国家/地区时,可以使用文本框的自动填充功能。 此自动填充包含来自所选国家/地区的邮政编码。
现在我想在dropdownlist.change事件之后立即设置自动完成功能 防止1个国家/地区的自动填充(填写邮政编码)也适用于其他国家/地区。但你怎么把它关掉呢?
代码:
//when changing country, other postcodes will load
$('[id$=landenDropDown]').change(function () {
//autocompletes removal
...
$('[id$=POSTCODETextBox]').html("");
var LandCode = $('[id$=landenDropDown]').attr("value");
//autocomplete with postal codes for Belgium
if (LandCode == "BE") {
//autocomplete postcode from selected country
$('[id$=POSTCODETextBox]').autocomplete("PostcodeBE.aspx");
}
//autocomplete with postal codes for Holland
else if (LandCode == "NL") {
//autocomplete postcode from selected country
$('[id$=POSTCODETextBox]').autocomplete("thingXml.aspx");
}
else {
//test
getal += 1;
alert(getal);
}
问题在于自动完成功能完成并选择其他国家/地区 这个自动完成仍然存在,即使它不必显示。
答案 0 :(得分:6)
请查看文档:{{3}}
$( ".selector" ).autocomplete({ disabled: true });
如果此解决方案不适合您,您可能会遇到其他问题。 使你的代码更好一点,也许是某些内部错误导致
变化
$('[id$=POSTCODETextBox]').html("");
到
$('[id$=POSTCODETextBox]').val("");
尝试为postcodetextbox工作:
$('[id$=POSTCODETextBox]').autocomplete({
source: "somesource.aspx",
change: function(event, ui) {
$(this).autocomplete("destroy");
}
});
但是这会禁止用户再次使用它......
您也可以停用文本框。
$('[id$=POSTCODETextBox]').attr("disabled", "disabled");
答案 1 :(得分:1)
//when changing country, other postcodes will load
$('[id$=landenDropDown]').bind($.browser.msie ? 'propertychange' : 'change', function () {
//autocompletes removal
...
var LandCode = $('[id$=landenDropDown]').attr("value");
$('[id$=POSTCODETextBox]').autocomplete('destroy');
//autocomplete with postal codes for Belgium
if (LandCode == "BE") {
//autocomplete postcode from selected country
$('[id$=POSTCODETextBox]').autocomplete("PostcodeBE.aspx");
}
//autocomplete with postal codes for Holland
else if (LandCode == "NL") {
//autocomplete postcode from selected country
$('[id$=POSTCODETextBox]').autocomplete("thingXml.aspx");
}
else {
//test
getal += 1;
alert(getal);
}