我正在为两个字段使用屏蔽插件。一个是加拿大邮政编码(T5T 5T5),另一个是电话号码(999-999-9989)。两个面具在桌面上都能正常工作如果您在手机上打开相同的代码,则会出现此问题。当用户输入邮政编码1时,光标会一直跳到光标的开头。
以下是代码:
HTML:
<input type="text" id="someID" /> (T9T 1A1)
<br />
<span id="result"></span>
<br /><br />
<input type="text" id="someOtherID" /> (999-999-9999)
<br />
<span id="result1"></span>
使用Javascript:
$("#someID").mask("a9a 9a9");
$("#someID").on('keyup', function() {
var actualValue = $(this).val().replace(/[_-\s]/g, '').length;
if (actualValue === 0 || actualValue !== 6) {
$("#result").text("not valid")
} else {
$("#result").text("valid")
}
});
$("#someOtherID").mask("999-999-9999");
$("#someOtherID").on('keyup', function() {
var actualValue = $(this).val().replace(/[_-\s]/g, '').length;
if (actualValue === 0 || actualValue !== 10) {
$("#result1").text("not valid")
} else {
$("#result1").text("valid")
}
});
我已在此fiddle附加了Mask插件。
有人见过这个吗?
答案 0 :(得分:6)
这是一个远景,但请尝试在输入字段中设置autoComplete="off"
属性。这可能是与Chrome移动版相关的错误。
我的预感基于this issue,虽然报告的情况完全不同,但我认为是指相同的错误。
引用:
确实问题是由自动修正引起的。
当一个单词被标记为建议时,
selectionStart
和selectionEnd
没有反映插入位置,但是它们包裹了 整个词,即使插入符号介于两者之间 实际选择已折叠。
我的假设是必须操纵光标才能创建蒙版视觉效果,这样才能很好地连接。
答案 1 :(得分:0)
可能是因为您正在以错误的方式编写 keyup 侦听器
这篇文章的答案是:Jquery keyup not working on Android
嗯......掩码插件本身可能是这个问题的根源......快速浏览一下源代码揭示:
el.on('input.mask keyup.mask', p.behaviour)
.on('paste.mask drop.mask', function() {
setTimeout(function() {
el.keydown().keyup();
}, 100);
})
所以我猜你可能会试图消除移动设备的怀疑代码,直到你达到理想的效果