右键单击更新表单验证 cut/paste

Update form validation on right-click cut/paste

我会检查用户输入的长度,以便在他们尝试提交表单之前提供反馈。这是我的代码:

var $foo = $("#foo"), $span = $("span")
$foo.on('keydown keyup change', function(){
  $span.text($foo.val().length);
}).trigger('change');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="foo">Ipsum</textarea>
<small><span></span> characters.</small>

这对键入的输入有效。但是,如果用户通过上下文菜单剪切或粘贴,则不会更新计数。如何确保计数始终更新?

您需要将 input 添加到您处理的事件列表中:

$foo.on('keydown keyup change input', function() { ...

当用户执行(例如)右键单击/剪切或右键单击/粘贴时,触发的是 input 事件。