我正在制作一个简单的页面,您可以扫描或键入一个UPC,它会自动添加到一个表中以供显示。我放弃了一些代码来启动一个计时器,它在键入完成后等待3秒,然后在我的表中创建一个新行来显示键入的UPC和项目信息。
但是,这段代码有一些问题。(我的问题)
a.)当您手动输入UPC时,新行操作会发生多次(为同一UPC插入多行),但当您使用条形码扫描器扫描UPC时,它只完成一次操作。(这是正确的)
b)当您从字段中删除信息(使upc字段为空)时,新行操作再次发生,但插入一个空行。
c)我尝试在行插入后使upc字段为空,但没有成功。我尝试在行插入后放置upc=“;
但没有成功。我定义upc
如下:
var upc=document.getElementById("UPC").value;
(如下文和jsfiddle中所示。)
所以现在代码...
<input type="text" id="UPC" name="UPC" class="form-control scanning" autofocus="autofocus" placeholder="Scan or enter UPC here" />
<div class="scannedItems">
<table class="table table-hover" id="ScannedItems">
<thead>
<tr>
<th>UPC</th>
<th>Description</th>
<th>Price</th>
<th>Qty</th>
<th>Total</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td>8754621160</td>
<td>Example Product</td>
<td>$5.00</td>
<td>5lbs</td>
<td>$25.00</td>
<td>
<a><span class="glyphicon glyphicon-plus" style="padding-right:15px"></span></a>
<a><span class="glyphicon glyphicon-minus"></span></a>
</td>
</tr>
</tbody>
</table>
</div>
//setup before functions
var field = document.getElementById("UPC");
var typingTimer; //timer identifier
var doneTypingInterval = 3000; //time in ms, 3 seconds
//on keyup, start the countdown
$('#UPC').keyup(function () {
typingTimer = setTimeout(doneTyping, doneTypingInterval);
});
//on keydown, clear the countdown
$('#UPC').keydown(function () {
clearTimeout(typingTimer);
});
//user is "finished typing," do something
if (field.value.length == 0) {
//do nothing
} else {
function doneTyping() {
var upc = document.getElementById("UPC").value;
var table = document.getElementById("ScannedItems");
var row = table.insertRow(-1);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
var cell5 = row.insertCell(4);
var cell6 = row.insertCell(5);
cell1.innerHTML = upc;
cell2.innerHTML = "Example Description";
cell3.innerHTML = "$3.00";
cell4.innerHTML = "7lbs";
cell5.innerHTML = "$21.00";
cell6.innerHTML = "<a><span class='glyphicon glyphicon-plus' style='padding-right:15px;'></span></a><span> </span><a><span class='glyphicon glyphicon-minus'></span></a>";
upc = '';
}
}
正在工作:http://jsfidle.net/qabgs/1/
1)你应该在重置它之前清除旧的计时器,只是重写变量并不能清除它。keydown事件可能不能及时到达那里来清除它,所以在keyup中清除它可以解决这个问题。
$('#UPC').keyup(function(){
clearTimeout(typingTimer);
typingTimer = setTimeout(doneTyping, doneTypingInterval);
});
2)你在函数外做npc长度检查,这应该在函数内!
function doneTyping () {
if (field.value.length != 0) {
field.value = '';
问题内容: 我已将一个WAR文件部署到Tomcat服务器,该类之一将在启动时调用,然后init()方法将安排一个计时器,每5小时触发一次以执行一些任务。 我的init()代码如下所示: 我的应用程序运行没有问题,但是当我使用 /etc/init.d/tomcat7 stop 关闭Tomcat时,我检查了日志(catalina.out),它具有以下条目: 严重:Web应用程序[/ MyApplica
问题内容: 我需要一些有关在PHP中启动和停止计时器的信息。我需要测量从我的.exe程序开始(我在PHP脚本中使用函数)到完成执行并显示所花费的时间(以秒为单位)之后经过的时间。 我怎样才能做到这一点? 问题答案: 您可以使用并计算差异: 这是PHP的文档:http : //php.net/manual/zh/function.microtime.php
我正在用摇摆计时器打卡NetBeans: 我只是用System.out.print来测试程序,它不是真正程序的一部分。我调用停止()方法,但计时器继续计数。此外,我通过但它的计数速度是原来的两倍。有人能帮忙吗? 编辑: 这是我的计时器(有点像SSCCE): 它不能正常工作,因为秒没有出现,但它确实显示了20次,这就是我想要的。这只是在它自己的应用程序中,在我的实际程序中更容易看到问题。 我注意到游
我尝试创建一个自定义的时间流逝时间,一旦我按住音量键,它就会启动计时器,并假设时间必须在我松开键后停止,但我松开键时遇到问题,计时器仍在移动。请告诉我我错过了什么谢谢 公共布尔onKeyDown(int-keyCode,KeyEvent-event){if((keyCode==KeyEvent.keyCode_-VOLUME_-DOWN
我遇到的问题是,如何发送enter以结束循环?因为系统。在里面read()取第一个数字,如果我再加上2个数字,示例可以是, 条目: 2 3(输入)读2个数字和和 1 2(输入)读2个数字和和 (enter)这里结束循环,因为enter和no数字,并给出了解决方案 出口: 5. 3. 我不知道我以前发过什么
我有一个Swing计时器(javax.swing.Timer),用于在自定义Swing组件中执行一些动画。 然而,这会导致问题——特别是,即使在所有窗口都关闭后,它似乎也会阻止应用程序终止,因为实时计时器线程。此外,当看不到动画时,最好避免计时器在隐藏对象上运行的开销。 理想情况下,我希望做到以下几点: < li >当组件隐藏时停止计时器 < li >每当组件变得可见时,重新启动计时器 这是可能的