ColdFusion / jQuery 自动完成与 Chrome 冲突

问题描述

我有一个 ColdFusion 应用程序,它使用 jQuery 自动完成功能来允许用户从建议列表中选择一个电子邮件地址,然后它会自动填充表单的其余部分。我遇到的问题是,因为它是电子邮件输入,Chrome 会自动建议表单输入,并且当用户选择 Chrome 的选择而不是 jQuery 的选择时,它不会触发自动完成的选择选项中的代码

我考虑/尝试实施的一些事情是:

  • 设置 autocomplete="bogus-value",这似乎禁用了 jquery 自动完成
  • 设置 input type="search",我不能这样做,因为我使用的是 <cfinput>
  • 考虑在电子邮件输入失去焦点时调用自动填充函数,但在 ColdFusion 中没有将焦点事件视为一个选项。

任何关于使 jQuery 自动完成和 Chrome 协同工作的解决方案的建议,可以在 ColdFusion 应用程序中实现,将会很棒。谢谢!

编辑:添加相关代码
这是输入:

<cfinput type="text" name="EMAIL" ID="EMAIL" title="Employee Email Address"
    size="40" required="yes" message="You must enter an e-mail in the format first.last@state.mn.us" validate="regular_expression" value="#EMAIL#" 
        pattern="^((([a-z]|[0-9]|[A-Z]|!|##|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|[A-Z]|!|##|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9]|[A-Z])([a-z]|[0-9]|[A-Z]|\-){0,61}([a-z]|[0-9]|[A-Z])\.))*([a-z]|[0-9]|[A-Z])([a-z]|[0-9]|[A-Z]|\-){0,61}([a-z]|[0-9]|[A-Z])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3})\])))$">

和绑定自动完成的javascript:

$(window).load(function(){
    $("#EMAIL").autocomplete({
        source: "/_cfc/personpick.cfc?method=lookupPerson",select: function (event,ui) {
            if (ui.item) {
                $('#EMAIL').attr('value',ui.item.value);
                $('#EMAIL').val(ui.item.value);
                recordAjax();
            }
        }
    });
});

function recordAjax() {
    var email = $("#EMAIL").val();
    $.ajax({
        url: "/_cfc/personpick.cfc?method=PersonRecord",type: "POST",dataType:"json",data: {
            'EMAIL':email
        },success:function(data) {
            showDetail(data);
        }
    });
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)