微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ColdFusion / jQuery 自动完成与 Chrome 冲突

如何解决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 举报,一经查实,本站将立刻删除。