0

当我将一些文本粘贴到这个输入中时,它会将 inputString 注册为 0,直到在那里实际输入了一些内容。有没有办法让 inputSting 在粘贴时更新?谢谢

$('#test').on('paste',function(){
  var inputString = this.value;
     if(inputString.length == 0) {
       $('#text').html('nothing');
    }else{
       $('#text').html('something');
4

2 回答 2

1
$('.myElements').each(function() {
   var elem = $(this);
   // Save current value
   elem.data('oldVal', elem.val());
   // Look for changes
   elem.bind("propertychange keyup input paste", function(event){
      // If value has changed
      if (elem.data('oldVal') != elem.val()) {
       // Updated stored value
       elem.data('oldVal', elem.val());
       // Do action
     }
   });
 });

这将捕获您输入的任何更改。

或者使用 setInterval:

setInterval(function() { inputValue = $('#input_id').val(); }, 100);
于 2013-02-20T16:50:03.247 回答
1

paste事件在实际粘贴剪贴板内容之前触发。一个简单可靠的解决方案是使用计时器:

$('#test').on('paste', function() {
    var input = this;

    window.setTimeout(function() {
        var inputString = input.value;
        // Do stuff with inputString here
    }, 0);
});
于 2013-02-20T17:05:12.800 回答