2016-11-22 48 views
1

我正在使用jQuery自動完成與多個輸入框互連,即當在第一個輸入框中輸入一些值並失去焦點,下面的輸入框受到影響(即值是過濾相應)。然後我可以聚焦另一個輸入框並開始鍵入某個值,以便我應用兩個過濾器(輸入值並根據之前的輸入框值)。瞭解何時輸入框已清除bean,並插入新的輸入

而且,我設置爲刪除從輸入框中的所有字符時清理所有的輸入框的事件:

if (inputBoxTrigger.val().length == 0 && (event.keyCode == BACKSPACE || event.keyCode == DELETE)) { 
     jQuery.each(inputObjectArray, function (i, obj) { 
      obj.val(""); 
     }); 
    } 

所以,我的時候我只是刪除最後一個字符在當前輸入框中清理一切。但是,我可以執行以下操作:1)選擇輸入框的內容(例如,通過鼠標或按住Shift鍵) 2)開始在此輸入框中輸入內容而不按下退格或刪除按鈕

在這種情況下,輸入框被清除並插入一個新的字符,但我沒有看到這種情況。 我試圖刪除退格/刪除按鈕keyCode上的檢查,但是不起作用:當離開一個輸入框時,新的輸入框是空的,所以我只是清理一切(包括以前的輸入框)。

任何想法?

+0

你就不能檢測在輸入框中輸入字符數的變化中使用,如果下降,你有清理它們的情況嗎? – Matthias

+0

你的意思是說,當文字長度降至1時,我可以清除所有內容?這不可行:我會拼寫一些東西,例如家而不是家,只是回去刪除我的第二個小時;當從「hh」過渡到「h」時,我會觸發事件,這不是我想要的。我只需要用一個新字符替換整個輸入文本。 – Manu

+0

我不明白爲什麼從「hhome」轉到「h」與從例如「 「whatsup」到「h」(通過選擇和鍵入h)。但是,如果這就是你真正想要的,我懷疑你可能需要檢測是否選擇了字符,然後檢測是否所有字符都被選中,並且字符數是否變爲1.還可以檢測字符數是否爲1並檢查是否存在是退格還是不退出(如果退格,你有「家」的情況下,如果沒有,你有「whatsup」情況) – Matthias

回答

0

也許一個更復雜的算法來檢測字符串相似性?

如果字符串非常相似,那麼它可能是一個簡單的更正,如果不是,那麼它可能是一個完全不同的項目,您可能會重置表單。您還可以將長度/方向比較與相似性比較鏈接起來,以便對其進行微調(即僅在從長字符串到另一個長字符串時進行相似性比較...)。

在串相似度:

Compare Strings Javascript Return %of Likely

javascript text similarity Algorithm

http://andrew.hedges.name/experiments/levenshtein/

+0

這似乎是一個很好的解決方案,但與2或1個字符的字符串相似性似乎過於複雜。我會期待某種事件被攔截...... – Manu