Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从自动完成JavaScript中选择第一个值&;PHP_Javascript_Php_Jquery_Html_Autocomplete - Fatal编程技术网

从自动完成JavaScript中选择第一个值&;PHP

从自动完成JavaScript中选择第一个值&;PHP,javascript,php,jquery,html,autocomplete,Javascript,Php,Jquery,Html,Autocomplete,在下面的屏幕截图中,我正在显示城市列表,当我尝试进入“布里斯班”时,它将显示名为“布里斯班”的城市和郊区列表 现在,我有了以下用于自动完成函数的JavaScript function selectAutocomplete(e, t) { switch (e.target.value = t.item.label, $("input#destinationId").val(""), $("input#hotel_id").val(""), $("input#region_id").val

在下面的屏幕截图中,我正在显示城市列表,当我尝试进入“布里斯班”时,它将显示名为“布里斯班”的城市和郊区列表

现在,我有了以下用于自动完成函数的JavaScript

function selectAutocomplete(e, t) {
    switch (e.target.value = t.item.label, $("input#destinationId").val(""), $("input#hotel_id").val(""), $("input#region_id").val(""), t.item.type) {
    case "1C":
        break;
    case "2S":
        $("input#region_id").val(t.item.value);
        break;
    case "3D":
        $("input#destinationId").val(t.item.value);
        break;
    case "4H":
        $("input#hotel_id").val(t.item.value)
    }
    StopEvent(e)
}

 $("input#keywords").bind("keydown", function (e) {
            13 != e.keyCode && ($("#hotel_id").val(""), $("#destinationId").val(""), $("#region_id").val(""))
完整的JS代码在 站点链接(请原谅自签名SSL)

有人能帮我自动填充文本框吗?也就是说,当有人以Brisbane的身份键入并单击search时,自动完成第一项时,它应该自动
单击
(因为单击其他隐藏字段也会被填充),并且应该填充名为
关键字
的文本框

HTML代码

<input type="hidden" id="destinationId" name="destinationId" value=""/>
<input type="hidden" id="hotel_id" name="hotel_id" value=""/>
<input type="hidden" id="region_id" name="region_id" value=""/>
<input type="text" id="keywords" value="Enter destination or hotel name" placeholder="Enter destination or hotel name" name="keywords" class="ui-autocomplete-input" onfocus="this.value='';" autocomplete="off"/>

阅读代码后,以下是建议而不是答案:

  • 将第一个值放入框中会触发逻辑问题,因为它会更改输入框的值,因此,自动完成列表也会更改

  • 要解决此问题,jqueryui自动完成使用:auto focus

  • 要设置自动对焦,请在第422行后插入js:

    autoFocus: true,
    

    阅读:

    既然您使用jquery,为什么不使用jquery ui,它已经自动完成:@Zac-True,但是这个应用程序非常大,是由其他人开发的。在这个阶段,很难将其更改为jQueryUI,所以只需寻找一些快速修复。谢谢。你是说在这两行之间<代码>来源:“/ajax/autocomplete”
    select:selectAutocomplete,
    对吗?谢谢Zac,不是autoFocus,我正在寻找可以进行autoselect的东西。告诉我会发生什么,当你键入“P”时,它会自动选择“Pakistan”,你列表中的巴黎不见了。然后你开始删除,当字符变成“Pa”时,自动选择“巴基斯坦”再次为你。。。或者这次它会自动为您选择“Japan”。不,在
    focusout
    上,它应该选择最上面的一个。如果您重新聚焦,当前代码将删除内容:
    onfocus=“this.value=”;
    。无论如何,如果你真的想要它(我不认为这会让用户的生活更轻松),你可以把
    放在blur=“get\u top\u autocomplete\u value()”
    ,然后你只需要让
    选择autocomplete(e,t)
    这个
    t
    变得可以被你的新函数
    get\u top\u autocomplete\u value>访问