Events jQuery Maskedinput插件:粘贴后完成的事件不工作

Events jQuery Maskedinput插件:粘贴后完成的事件不工作,events,jquery-plugins,maskedinput,pasting,Events,Jquery Plugins,Maskedinput,Pasting,我在使用jQuery时遇到问题 文本输入成功,但如果我将文本粘贴到屏蔽文本框中,我将无法捕获已完成的事件 插件站点的示例: <script type="text/javascript"> jQuery(function ($) { $("#testtext").mask("99/99/9999", { completed: function () { alert("You typed the following: " + this

我在使用jQuery时遇到问题 文本输入成功,但如果我将文本粘贴到屏蔽文本框中,我将无法捕获已完成的事件

插件站点的示例:

<script type="text/javascript">

    jQuery(function ($) {
         $("#testtext").mask("99/99/9999", { completed: function () {
             alert("You typed the following: " + this.val());
         } });
     });
</script>
有人做过类似的事情吗?

我最终:

绑定到粘贴事件和 然后在短暂的设置超时后获取粘贴的值 因为粘贴的数据不会在触发事件和 最后调用与complete相同的方法 可能有一个更简单的解决方案,但这似乎最简单,因为事实证明,在所有浏览器中获取剪贴板数据并不是那么容易。

我最终得出:

绑定到粘贴事件和 然后在短暂的设置超时后获取粘贴的值 因为粘贴的数据不会在触发事件和 最后调用与complete相同的方法
可能有一个更简单的解决方案,但这似乎最简单,因为在所有浏览器中都很难获取剪贴板数据。

以下是我在粘贴时触发已完成事件所做的操作。这可能不是漂亮的解决方案,也不是傻瓜式的解决方案,但就我而言,这就足够了

另外,由于我使用两个单独的面具进行了有限的测试,我没有遇到任何问题。我使用的口罩是AA99AA999和999-9999

我只是更新了粘贴处理程序的绑定事件。所有这些逻辑所做的就是确保光标的位置>=掩码的长度,如果是这种情况,它将触发完成的函数,假设您已经传递了它

.bind(pasteEventName, function() {
                        setTimeout(function() { 
                            input.caret(checkVal(true)); 
                            if(checkVal(true) >= len && settings.completed){
                                settings.completed.call(input);
                            }
                        }, 0);

希望这能帮助别人。

以下是我在粘贴时触发已完成事件的步骤。这可能不是漂亮的解决方案,也不是傻瓜式的解决方案,但就我而言,这就足够了

另外,由于我使用两个单独的面具进行了有限的测试,我没有遇到任何问题。我使用的口罩是AA99AA999和999-9999

我只是更新了粘贴处理程序的绑定事件。所有这些逻辑所做的就是确保光标的位置>=掩码的长度,如果是这种情况,它将触发完成的函数,假设您已经传递了它

.bind(pasteEventName, function() {
                        setTimeout(function() { 
                            input.caret(checkVal(true)); 
                            if(checkVal(true) >= len && settings.completed){
                                settings.completed.call(input);
                            }
                        }, 0);
希望这能帮助别人