【问题标题】:Count word written in textarea计算在 textarea 中写的单词
【发布时间】:2019-03-30 22:11:54
【问题描述】:

我正在尝试计算用户在 textarea 中写入的整个文本中使用输入字段中的关键字的次数。我有点让它工作,但有一些问题。如何使搜索进行实时搜索,而不是像现在这样,用户必须按下按钮才能搜索代码?

$(function() {
  function numHits(n, h) {
    var c, re = new RegExp(n, "g");
    c = (h.match(re) || []).length;
    return c;
  }
  $("#finder").submit(function(e) {
    e.preventDefault();
    $("#keyword-count").html(numHits($("#keyword-input").val(), $("#my-txt-area").val()));
  });
});
<form id="finder">
  <textarea name="mytxtarea" id="my-txt-area" cols="100" rows="10"></textarea>
  <br>
  <div class="input-area" id="div-keywords">
    <input type="text" id="keyword-input" placeholder="Enter keyword..." /> <button id="search-keyword" type="submit">Search</button>
  </div>
</form>
<p>Your word has been used <span id="keyword-count">0</span> times throughout the text.</p>

Code Snippet

【问题讨论】:

  • 你可以监听input事件而不是click

标签: javascript jquery input textarea word-count


【解决方案1】:

您只需将函数放在查询框的 keyup 事件上

$(function() {
  function numHits(n, h) {
    var c, re = new RegExp(n, "g");
    c = (h.match(re) || []).length;
    return c;
  }
  $("#keyword-input").keyup(function(e) {
    e.preventDefault();
    $("#keyword-count").html(numHits($("#keyword-input").val(), $("#my-txt-area").val()));
  });
});

【讨论】:

  • 嗨@sc0rp1on。我已经尝试过您提供的解决方案,但似乎对我不起作用:jsfiddle.net/h2ctqseL
  • @TobiasM 它正在工作。请注意,一按键,数字就会发生变化。当字段为空时,您必须检查它不会更改
猜你喜欢
  • 2013-12-06
  • 1970-01-01
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 2015-06-14
  • 1970-01-01
相关资源
最近更新 更多