Javascript easyautocomplete 在IOS上的BUG处理

    以前一直在WEB实现autocomplete运用,手机上也是原生开发。这次客户要求,对一个HTML页面,在手机承现时,一个文本框需要实现AutoComplete功能。

我使用的是EasyAutocomplete

http://easyautocomplete.com

不过在苹果IOS手机有一个BUG, 当然这个BUG不是EasyAutocomplete的BUG,仅仅是IOS的特性原因。

Android上没有问题。

如果输入英文,EasyAutocomplete在IOS上的表现,没问题,能够触发事件。但是当输入中文时,无法触发事件。

搜狗输入法也能够支持。

经过调查资料,研究EasyAutocomplete代码,终于实现了在IOS,输入中文也能触发。

首先IOS的原因,keyup事件不能触发,settimeout不能使用。

经修改如下:

1.找到 bindEvents定义,在定义中增加一个事件方法,如function bindInputPropertychange(){}。

function bindEvents() {

   bindAllEvents();
   function bindAllEvents(){...}
   function bindFocusOut(){...}
   function bindKeyup() {...}
   .....
}

2.bindInputPropertychange事件方法,

function bindInputPropertychange() {
   $($field).on('input propertychange',function(){
// 实现
   }
}

 

3.把bindInputPropertychange加到bindAllEvents中

function bindAllEvents() {
	if (checkParam("autocompleteOff", true)) {
		removeAutocomplete();
	}

	bindFocusOut();
	bindKeyup();
	bindKeydown();
	bindKeypress();
	bindFocus();
	bindBlur();
    bindInputPropertychange();
}

 

转载于:https://my.oschina.net/u/1049380/blog/1938823

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值