首页 文章

JQuery Masked Input Plugin不接受粘贴

提问于
浏览
3

首先,我正在使用:

  • Jquery 1.8.3

  • 蒙面输入插件1.3.1(该插件可以找到here

我的目标:

  • 屏蔽输入字段以仅接受11个数字 . 但是我希望它接受复制和粘贴的方式,如果我从外部源(例如文本文件)复制只包含11个数字的文本,插件让我粘贴在蒙版输入字段中 .

问题:

  • 当我尝试粘贴例如: 03073870970 (11个数字)时,掩码只接受 030738709 (9个数字) .

我该怎么做才能解决这个问题?欢迎任何提示 .

5 回答

  • 10

    解:

    将占位符从“_”或“”或任何其他占位符更改为“”(空字符串),如下所示:

    $(".cpfInput").mask("99999999999",{placeholder:""});
    

    诀窍在于,如果你把任何占位符与空字符串放在不同的位置,插件会用占位符填充输入字段,当你粘贴一些东西时,它会在粘贴你想要粘贴的东西之前不清理它 .

  • 2

    你不需要改变你的插件 . 您可以绑定粘贴事件并在粘贴之前清除内容 . 所以面具不会留任何空间来阻止你制作粘贴 .

    $('input.class').bind('paste', function () { $(this).val(''); });
    
  • 1

    另一种解决方案:从输入中删除maxlength属性 . 插件本身会剪切额外的符号,但您可以正确地从缓冲区粘贴 .

  • 10

    有同样的问题,我找到的最轻松的解决方案,没有删除任何东西(占位符等)是:

    $('input[placeholder]').on('paste', function(){
        $(this).val(' ');
    });
    

    作为一个魅力:)

    我找到了另一个解决方案:

    $('input[placeholder]').on('paste', function(e){
        e.preventDefault();
        var clipboardCurrentData = (e.originalEvent || e).clipboardData.getData('text/plain');
        window.document.execCommand('insertText', false, clipboardCurrentData);
    });
    
  • 4

    请尝试使用Formatter.js . 我换了这个确切的原因 . 其另例如,当我从一个窗口转到另一个窗口获取电话号码时,我可能会添加三个号码,更改窗口以获取剩余的号码,然后返回,但是每次更改窗口时屏蔽的输入插件都会清除该字段 . 令人沮丧的用户体验

相关问题