【问题标题】:Simplify jQuery for detecting change of an input's value [duplicate]简化 jQuery 以检测输入值的变化 [重复]
【发布时间】:2015-03-30 13:03:55
【问题描述】:

我正在跟踪输入到 textarea 中的字符数

$(function(){
  var limitDiv = $("#limit");
  var limit = limitDiv.data("limit");
  var button = $("input");
  $("textarea").on("keyup", function(){
    var total = this.value.length;
    var diff = limit- total;
    var condition = diff < 0 || total === 0;
    limitDiv.text(diff).toggleClass("red", condition);
    button.prop("disabled", condition);
  }).trigger("keyup");
})

【问题讨论】:

  • 您还可以验证文本区域何时失去焦点

标签: javascript jquery input textarea


【解决方案1】:

只需添加一个粘贴事件:

$(function(){
  var limitDiv = $("#limit");
  var limit = limitDiv.data("limit");
  var button = $("input");
  $("textarea").on("keyup paste", function(){
    var total = this.value.length;
    var diff = limit- total;
    var condition = diff < 0 || total === 0;
    limitDiv.text(diff).toggleClass("red", condition);
    button.prop("disabled", condition);
    button.value(total);
  });
})
textarea {
  width: 100%;
  height: 30px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea></textarea>
<input type="button" value="Submit">
<div id="limit" data-limit="15"></div>

【讨论】:

    【解决方案2】:

    在 jQuery 中有一个paste 事件,虽然它不经常使用。截至jQuery 2.1.0.

    ,它似乎仍然有效
    $("#input").on("paste", function(e){
          //code goes here
      }); 
    

    http://jsfiddle.net/gty70qc9/2/

    【讨论】:

    • 这行得通,谢谢!完全忘记了“粘贴”事件
    猜你喜欢
    • 2012-09-29
    • 2011-09-21
    • 2016-10-04
    • 2011-09-25
    • 2018-06-13
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多