【问题标题】:Word counter function not working with barcode scanner字数计数器功能不适用于条码扫描仪
【发布时间】:2012-02-01 03:07:22
【问题描述】:
$("#itemids").keypress(function(){
    var value = $(this).val().replace(" ", "");
    var words = value.split(",");
    $("#counter").html(words.length);
}); 

此功能适用于键盘。但是当我使用条形码扫描仪时,(我只是将光标放在 textarea 上,它开始通过逗号等分隔符将条形码扫描到 textarea 中。)它根本不起作用。

我认为它一定不是 keypress(function() 。因为 bc 扫描仪以编程方式输入单词。如何让它在两种情况下都工作:键盘和 bc 扫描仪?

【问题讨论】:

  • 扫描仪真的是一个一个地“输入”单词还是只是“粘贴”整个字符串?
  • 您尝试过input 事件吗? help.dottoro.com/ljhxklln.php

标签: javascript jquery function counter


【解决方案1】:

看起来解决方案是针对use polling,而不是事件。

function update(){
    var value = $("#itemids").val().replace(" ", "");
    var words = value.split(",");
    $("#counter").html(words.length);
}

setInterval(update, 10); // poll every 10ms

【讨论】:

  • 我认为只有在元素失去焦点时才会触发更改,而不是起作用。我需要在输入后直接改变值的东西
  • 我更新了我的答案。还有一个与这个问题非常相似的问题:stackoverflow.com/questions/6771140/jquery-text-change-event
  • 问题是,这个脚本有问题。对于 ex 1,2, 计数为 3。如何解决该问题?
  • @trl13 $(this).val().replace(" ", "").replace(/[\s,]+$/, '');
  • @trl13:您可以检查最后一个字符是否为 ',',如果是则将其删除。然后调用拆分。或者先调用 split 并检查最后一个元素是否为空字符串。然后删除它。
猜你喜欢
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-28
相关资源
最近更新 更多