我如何解决jQuery MaskedInput插件的不同选定文本行为?

时间:2013-07-08 22:04:05

标签: jquery maskedinput

很抱歉这个问题很长,但我不确定最好的方法: - (

问题是,当面具固定长度时,Josh Bush的优秀Masked Input jQuery插件选择焦点上的输入框中的文本,但是当面具具有可选字符时,它会强制插入符号到字段的末尾在它。

如果您转到他的演示页面(http://digitalbush.com/projects/masked-input-plugin/),您可以看到这一点。

在“日期”,“电话”和“电话+外部”字段中填写一些值,然后选中它们。您会注意到,当字段获得焦点时,日期和电话字段将被完全选中,但是当您选中Phone + Ext字段时,插入符号将显示在字段的末尾。

我希望所有屏蔽字段的行为相同(选择所有文本,如上面的前两个示例中所示),无论是否有可选的屏蔽字符。

有没有其他人解决过这个问题,如果有的话,请你发表你是怎么做到的?

提前致谢。

Fixed-length masks select all text like so... Masks with optional characters force the caret to the end of the field.

1 个答案:

答案 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