为什么选择字段触发自动完成功能?

时间:2019-05-30 21:04:53

标签: javascript jquery

我有一个连接到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的内容。

JSFiddle of the HTML and JS

$_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>

0 个答案:

没有答案