zoukankan      html  css  js  c++  java
  • jquery autocomplete 在IE11中出现打开网页输入框有默认值时下拉列表是已经打开的状态解决

    页面input标签使用jq插件实现自动完成功能的时候发现,在IE11浏览器环境下页面input标签有绑定的默认值时,autocomplete 下拉框是直接显示出来的。

    网上说的设置autocomplete 为false,貌似不能解决问题。。。。

    经过排查发现,在谷歌浏览器环境下给输入框绑定默认值不会出现该情况,猜测应该是IE是input输入框值有变化时就会直接出发自动完成功能,尝试在js代码中添加

    判断当前input是否已经获取焦点,只有获取了焦点才执行请求。

     1   $(function () {
     2         //自动完成
     3         $("#Diag").autocomplete({
     4             source: function (request, response) {
     5                 $("#Diag")[0].title = "";
     6                 //IE11下input填充完数据就会触发,过滤掉没获取焦点的触发
     8                 var focusid = document.activeElement.id;
     9                 if (focusid != 'Diag') {
    10                     return;
    11                 }
    12                 $.ajax({
    13                     type: "POST",
    14                     url: "/DataMap/GetHos_Diagnosis",
    15                     dataType: "json",
    16                     data: { queryStr: request.term, HospFlag: $("#setHospFlag option:selected").val() },
    17                     success: function (data) {
    18                         this.title = "";
    19                         response($.map(data, function (item) {
    20                             return {
    21                                 value: item.Name, id: item.Code
    22                             }
    23                         }));
    24                         if (data.length > 0) {
    25                             autoFlag = true;
    26                         } else {
    27                             autoFlag = false;
    28                         }
    29                        
    30                     },
    31                     error: function (xhr) {
    32                         if (xhr.status === 401) {
    33                             window.location.href = xhr.statusText;
    34                             return;
    35                         }
    36                     }
    37                 });
    38             },
    39             select: function (event, ui) {
    40                 setDiagnosis(ui.item.id, ui.item.value);
    41                 //event.preventDefault();//取消选择填充
    42                 //$('#QueryKeywords').val('');//清空输入框
    43             },
    44             minLength: 2,
    45             autoFocus: true,
    46             close: function (event, ui) {//菜单关闭事件
    47                 autoFlag = false;
    48             }
    49         }
    50         );
    51     });
    测试发现,ie11下已正常。
  • 相关阅读:
    产品生成器模块的问题图片处理
    jQueryinteface效果集合
    aspx页面中文汉字显示为乱码
    实用的正则表达式
    用javascript操作xml
    标注上下标的方法
    1740 博弈
    1028 母函数
    To resolve the problem of sharepoint can not login
    Modify Sharepoint Login UI
  • 原文地址:https://www.cnblogs.com/wangdongying/p/11411299.html
Copyright © 2011-2022 走看看