0
我創建了一個文本字段組件,其中包含常規文本字段和旁邊的清除(x)按鈕。虛擬鍵盤在錨點上簡單消失點擊
這是加價:
<div class="input-clear">
<input type="email" name="user" placeholder="Email address" />
<a href="#">clear</a>
</div>
這是我用來初始化代碼:
[].forEach.call(document.getElementsByClassName('input-clear'), function(el) {
var input = el.getElementsByTagName('input')[0],
a = el.getElementsByTagName('a')[0],
updateField = function() {
if (input.value.length) {
a.style.display = 'inline';
} else {
a.style.display = 'none';
}
},
clearField = function(event) {
event.preventDefault();
input.value = '';
input.focus();
updateField();
};
if (input && a) {
input.addEventListener('keyup', updateField, false);
input.addEventListener('change', updateField, false);
a.addEventListener('click', clearField, false);
updateField();
}
});
的clearField()
事件處理程序清空場,消除了清除按鈕和然後再次聚焦文本字段。
問題
當點擊了清除按鈕,虛擬鍵盤簡要地消失在模糊和焦點之間。是否可以始終保持鍵盤可見?
順便說一句,我知道,當選擇的全部文本,然後取出清除按鈕不會消失,但我不是太擔心那種情況下:)
如果您使用'touchstart'而不是'click',並且在輸入失去焦點之前取消事件會發生什麼? – 2013-05-06 04:06:25
@DaggNabbit那麼,密封交易:)你想寫它作爲一個答案? – 2013-05-06 04:11:18
當然,爲什麼不:) – 2013-05-06 04:12:33