我有一个连接到jQuery自动完成功能的输入字段。我试图获取一个选择字段,以同时触发自动完成功能以完善搜索结果。
我的工作方式与我想的一样,但是我不清楚为什么,选择输入字段正在触发a = list(range(1, 11))
b = a[:2] + [x*y for x, y in zip(a[2::2], a[3::2])]
b
[1, 2, 12, 30, 56, 90]
函数。通常会隐藏County字段,直到找到一些搜索结果为止,但为了简化操作,我将其保留。
我了解为什么AutoComplete
输入字段会触发ModSearch
函数,但为什么AutoComplete
字段也会触发{仅在county
函数本身中引用)。值得注意的是,AutoComplete
字段不会不触发county
,直到在AutoComplete
字段中输入至少一个字符为止。
下面的代码是自包含的,如果将其保存为PHP并从浏览器中调用,它将在搜索字段中输入内容后简单地回显ModSearch
的内容。
$_GET
编辑以添加:
下面显示的对JS的修改似乎可行并且可以理解(至少对我而言)。如果可以进一步完善,可以这么说。
<?php
if (!empty($_GET['look4'])) {
echo '<pre>';
print_r($_GET);
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script>
function AutoComplete() {
$("#ModSearch,#county").autocomplete({
source: function(request, response) {
var look4 = $("#ModSearch").val();
var county = $("#county").val();
var request = $.ajax({
url: 'SO_Question.php',
data: { look4 : look4 ,
county : county} ,
dataType: "text",
cache: false
})
request.done(function( response ) {
document.getElementById('results').innerHTML = response;
document.getElementById("results").style.display = "block"
});
}, // end of source
}); // end of autocomplete
} // end of the AutoComplete function
$(function() {
$('#ModSearch').on('input',function() {
AutoComplete();
});
}); // end of function
</script>
</head>
<body>
<p>
Start typing to search: <input type="search" id="ModSearch" placeholder="Start typing to search">
<section>
You may refine your search by choosing a county
<select name="county" id="county" size="1">
<option value="">-- Select County --</option>
<option value="91">ABC</option>
<option value="92">DEF</option>
<option value="93">XYZ</option>
</select>
</section>
<div id="results" style="display: none;"></div>
</body>
</html>