2010-06-08 57 views
0

我有一個輸入文本框用於搜索輸入,文本框的id是:id =「search」。幫助,卡住了邏輯變量比較循環,javascript

如果用戶首先輸入「貓」並點擊搜索。

在功能方面,我使用語法獲得的價值「貓」:

var input = document.getElementById("search").value; 

之後,用戶在搜索框中輸入「狗」,並使用相同的功能,點擊搜索。

該函數會將「狗」分配給輸入變量。

我將如何比較當前值(狗)和以前輸入的值(貓)?

我試圖原始輸入與語句分配,像

var orig = input; 

的東西,但這樣做既與新的輸入覆蓋原來的輸入。

這個問題的邏輯途徑是什麼?

+0

您是否想維護搜索項目的歷史記錄,並且也在客戶端? – 2010-06-08 22:33:38

+0

@Vivin,對不起,你是什麼意思?我沒有看到'接受'按鈕 – Jamex 2010-06-08 22:53:13

+0

@Vishal,在這個時候,沒有。但是你的問題讓我相信我會需要它。謝謝你的回覆。 – Jamex 2010-06-08 23:06:57

回答

0
var original = ""; 

function searchHandler() { 
    var input = document.getElementById("search").value; 

    if(input != original) { 
     //handle case if input is not equal to original 
    } 

    else { 
    //handle case if input is equal to original 
    } 

    original = input; 
} 

此代碼將保留最後輸入值的歷史記錄(僅在客戶端)。如果你想保持多個值,那麼解決方案稍微複雜一些;你可以使用堆棧。

+0

謝謝,我會試試這個。我不熟悉JS語法,但是你的解決方案意味着可以在函數內部調用/修改在函數之外聲明的原始var。那是對的嗎?我會嘗試,但只是要求確認。 – Jamex 2010-06-08 22:48:14

+0

是的;它是一個全局變量。它必須被聲明在函數的範圍之外。否則,一旦退出該功能,更新後的值將會丟失。 – 2010-06-08 22:49:58

+0

它的工作原理,謝謝Vivin。 – Jamex 2010-06-08 23:05:17

0

一種方法是擁有一個或一組以前搜索過的單詞。這樣,您可以將搜索詞添加到列表或設置中,而不是爲變量賦值。儘管這帶來了您是否希望搜索歷史無界限,以及是否要存儲重複搜索條目的問題。

+0

謝謝你的回覆,但我不熟悉JS開始挖掘。 – Jamex 2010-06-08 22:49:50