Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 了解何时清除输入框并插入新输入_Javascript_Jquery - Fatal编程技术网

Javascript 了解何时清除输入框并插入新输入

Javascript 了解何时清除输入框并插入新输入,javascript,jquery,Javascript,Jquery,我使用jQuery autocomplete时,多个输入框相互连接,即在第一个输入框中插入一些值并失去焦点时,以下输入框会受到影响(即相应地过滤值)。然后我可以聚焦另一个输入框并开始输入一些值,这样我就可以应用两个过滤器(输入值和根据之前的输入框值) 此外,我还设置了一个事件,用于在从输入框中删除所有字符时清理所有输入框: if (inputBoxTrigger.val().length == 0 && (event.keyCode == BACKSPACE || event.k

我使用jQuery autocomplete时,多个输入框相互连接,即在第一个输入框中插入一些值并失去焦点时,以下输入框会受到影响(即相应地过滤值)。然后我可以聚焦另一个输入框并开始输入一些值,这样我就可以应用两个过滤器(输入值和根据之前的输入框值)

此外,我还设置了一个事件,用于在从输入框中删除所有字符时清理所有输入框:

if (inputBoxTrigger.val().length == 0 && (event.keyCode == BACKSPACE || event.keyCode == DELETE)) {
        jQuery.each(inputObjectArray, function (i, obj) {
            obj.val("");
        });
    }
所以,当我刚刚删除当前输入框中的最后一个字符时,我会清理所有内容。但是,我可以做到以下几点: 1) 选择输入框的内容(例如,通过鼠标或按住shift键) 2) 开始在此输入框中键入内容,无需按backspace或delete按钮

在这种情况下,输入框将被清除,并插入一个新字符,但我不理解这种情况。 我试图删除backspace/delete按钮键代码上的复选框,但它不起作用:当离开一个输入框时,新的输入框是空的,所以我只是清理所有内容(包括以前的输入框)


有什么想法吗?

也许是一个更复杂的算法来检测字符串相似性

如果字符串非常相似,则可能是一个简单的更正,如果不是,则可能是一个完全不同的项,您可以重置表单。您还可以将长度/方向比较与相似性比较链接,以对其进行微调(即,仅当从一个长字符串到另一个长字符串时,才进行相似性比较…)

关于字符串相似性:


您不能检测正在使用的输入框中字符数的变化,如果它下降,您就可以全部清除它们吗?您的意思是当文本长度下降到1时,我可以清除所有内容吗?这是不可行的:我会把一些东西错丢了,比如说hhome而不是home,然后回去取下我的第二个h;当从“hh”传递到“h”时,我会触发事件,这不是我想要的。我只需要在用新字符替换整个输入文本时强调这一点。我不明白为什么从“hhome”到“h”与从“whatsup”到“h”(通过选择并键入h)时,框的行为会有所不同。但如果这是您真正想要的,我怀疑您可能需要检测是否选择了字符,然后检测是否选择了所有字符,以及字符计数是否变为1。还可以检测字符计数是否为1,并检查是否有退格(如果退格您有“hhome”案例,如果没有,您有“whatsup”案例),但如果有人选择所有内容并粘贴某些内容,这可能会失败,这似乎是一个好的解决方案,但对我来说,2或1个字符的字符串相似性似乎过于复杂了。我希望有某种事件会拦截。。。