很抱歉这个问题很长,但我不确定最好的方法: - (
问题是,当面具固定长度时,Josh Bush的优秀Masked Input jQuery插件选择焦点上的输入框中的文本,但是当面具具有可选字符时,它会强制插入符号到字段的末尾在它。
如果您转到他的演示页面(http://digitalbush.com/projects/masked-input-plugin/),您可以看到这一点。
在“日期”,“电话”和“电话+外部”字段中填写一些值,然后选中它们。您会注意到,当字段获得焦点时,日期和电话字段将被完全选中,但是当您选中Phone + Ext字段时,插入符号将显示在字段的末尾。
我希望所有屏蔽字段的行为相同(选择所有文本,如上面的前两个示例中所示),无论是否有可选的屏蔽字符。
有没有其他人解决过这个问题,如果有的话,请你发表你是怎么做到的?
提前致谢。
答案 0 :(得分:1)
如果你不介意改变jquery.maskedinput-1.3.1.js,那么从第308行开始替换这段代码:
caretTimeoutId = setTimeout(function(){
writeBuffer();
var trimmedMask = mask.replace('?','');
if (pos == trimmedMask.length) {
input.caret(0, pos);
} else {
input.caret(pos);
}
}, 10);
在缩小的文件中,您需要将其替换为字符3075:
var t2=t.replace('?','');b(),e==t2.length
我在发布有关同一问题的问题后找到了您的问题:https://stackoverflow.com/questions/19794942/jquery-masked-input-will-not-select-on-focus-when-mask-contains-optional-operato