我有一个带有JQuery ui自动填充建议的街道输入字段。在用户选择其中一个建议后,他应输入该号码。然后在数字模糊时,如果街道在建议中,则功能将使用以下自动完成搜索功能进行验证。如果是,则应调用其他函数。 我无法调用其他功能。
这是我的代码:
$("#street").autocomplete({
source: "street.php",
minLength: 2,
search: function (event,ui) {
//Return to input field
if (ui.item==null)
{
alert("Please select a street.");
$("#street").focus();
return;
} else{
//call an outside function,
//does not work
address-search();
}
}
});
提前感谢您帮助解决此问题。
答案 0 :(得分:1)
我认为你需要搜索回调来做到这一点:
$("#street").on("autocompletesearch", function(event, ui) {
if (ui.item === null) {
alert("Please select a street.");
$("#street").focus();
} else {
address-search();
}
});
此处的文档:http://api.jqueryui.com/autocomplete/#event-change
编辑:根据您的具体代码,我认为您想要这个:
$(document).ready(function() {
var availableTags = [
"1.Street",
"2.Street",
"3.Street"
];
$("#street")
.autocomplete({
source: availableTags,
minLength: 2,
})
.on("autocompletechange", function(event, ui) {
if (ui.item === null) {
alert("Please select a street.");
$("#street").focus();
xhr.abort();
} else {
address_search();
}
});
function address_search() {
alert($("#street").val());
}
});
更新了jsfiddle:https://jsfiddle.net/dupxj3mu/3/
答案 1 :(得分:0)
function search_street() {
$("#street").on("autocompletechange", function(event, ui) {
if (ui.item === null) {
$("#hiddenstreet").val($("#street").val());
$("#street").val("");
return false;
}
});
if ($("#street").val() === "") {
$("#street").val($("#hiddenstreet").val());
$("#street").focus();
alert("Please select a street.");
$("#hiddenstreet").val("");
return false;
} else {
address_search();
}
}
但是自动完成测试只运行一次,所以address_search()也会被错误的街道名称调用。我将在错误的输入上清空街道输入字段,并在DIV中将街道输入错误放在一边。然后address_search()将仅在正确选择时运行。