【发布时间】:2016-11-22 11:47:56
【问题描述】:
我正在使用 jQuery 自动完成,多个输入框相互连接,即当在第一个输入框中插入一些值并失去焦点时,以下输入框会受到影响(即相应地过滤值)。然后我可以专注于另一个输入框并开始输入一些值,这样我就可以应用两个过滤器(输入的值并根据之前的输入框值)。
另外,我设置了一个事件,用于在从输入框中删除所有字符时清除所有输入框:
if (inputBoxTrigger.val().length == 0 && (event.keyCode == BACKSPACE || event.keyCode == DELETE)) {
jQuery.each(inputObjectArray, function (i, obj) {
obj.val("");
});
}
所以,当我刚刚删除当前输入框中的最后一个字符时,我会清理所有内容。但是,我可以执行以下操作: 1) 选择输入框的内容(例如通过鼠标或按住 shift) 2) 开始在此输入框中输入内容,无需按退格键或删除按钮
在这种情况下,输入框被清除并插入一个新字符,但我没有捕捉到这种情况。 我试图取消对退格/删除按钮keyCode的检查,但不起作用:离开输入框时,新输入框为空,所以我只是清理所有内容(包括以前的输入框)。
有什么想法吗?
【问题讨论】:
-
你不能只检测正在使用的输入框中的字符数的变化,如果它下降,你有你的情况将它们全部清除吗?
-
你的意思是当文本长度下降到1时,我可以清除所有内容?那是不可行的:我会拼错一些东西,例如hhome 而不是 home,只是回去删除我的第二个 h;当从“hh”传递到“h”时,我会触发事件,这不是我想要的。在用新字符替换整个输入文本时,我只需要这样做。
-
我不明白为什么当您从“hhome”转到“h”与从例如“whatsup”到“h”(通过选择并键入 h)。但是,如果这是您真正想要的,我怀疑您可能必须检测是否选择了字符,然后检测是否选择了所有字符以及字符数是否变为 1。还可以检测字符数是否为 1 并检查是否存在是否是退格键(如果退格键你有“hhome”的情况,如果不是,你有“whatsup”的情况)
-
如果有人选择所有内容并粘贴某些内容,这将失败(我假设)
标签: javascript jquery