【问题标题】:Focus on input and autocomplete专注于输入和自动完成
【发布时间】:2016-03-24 17:10:46
【问题描述】:

我有一个<div>contenteditable=true。我附加了一个模糊事件,以便在用户离开该字段后记录输入:

$(document).on('#my_div'n 'blur', function () {.......

我在这个字段上附加了一个 jquery 自动完成功能:

$('#my_div').autocomplete({ source : emails_directory   }); 

自动完成功能很好,点击时会填写字段。

这里的问题是我的模糊事件只记录了我在触发自动完成之前输入的第一个字母。

如果不使用自动完成,我应该使用什么事件来记录字段值,或者如果使用自动完成的值。

例如: 我想从自动完成中获取 test@mail.com。 我输入“te”,完整的电子邮件会显示在自动完成中。 我在自动完成列表中选择它并在字段中填写。 我的模糊事件记录'te'。我不想这样,而是想记录 test@mail.com

Ex2: 我想输入一个不在自动完成源中的值。 我输入 new_email@mail.com,没有自动完成显示。 模糊时会记录完整值。

【问题讨论】:

    标签: jquery jquery-ui autocomplete blur


    【解决方案1】:

    您可以在模糊时触发 ENTER 的 keydown 事件。因此,如果存在,您可以获得自动完成值:

    $(document).on('#my_div', 'blur', function () {
             var keyEvent = $.Event("keydown");
             keyEvent.keyCode = $.ui.keyCode.ENTER;
             $(this).trigger(keyEvent);
             ......
    });
    

    别忘了自动对焦:

    $('#my_div').autocomplete(autoFocus: true, { source : emails_directory }); 
    

    【讨论】:

    • 谢谢。但我不明白。您也可以通过单击来选择自动完成,它是否仍会触发 ENTER 按键?
    • 是的,但它不会改变任何东西。价值将保持不变
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多