2012-09-13 30 views
0

我確認現場呼籲獨特客戶端代碼......檢查輸入的值,使用JS的onkeyup事件

我用的onkeyup JS事件用於此目的是獨一無二的。 但是,當我輸入密鑰非常快時,它不能正常工作。在此

onkeyup事件

我發送一個Ajax請求檢查輸入的數據是否已經存在於表與否。

請幫助,如果有任何替代..

回答

2

你的問題在你看來似乎面臨的實際問題上相當模糊。但是我從中得到的結果是,你提出了太多的要求,因爲你建議快速按鍵!


正如你所知道的,Ajax是像一個正常的頁面請求,只是做異步,所以用同樣的網絡延遲,吞吐量和往返約束的約束。

實現您所需功能的一種簡單方法是使用名爲節流的技術。爲此目的,最好的js插件之一位於此處:http://benalman.com/projects/jquery-throttle-debounce-plugin/ 它基本上允許您限制您對服務器的請求,從而不會窒息資源並提供流暢的用戶界面。


而且,除非你想捕獲某些特殊鍵,如ESC ,我會建議使用keypress或​​事件。不記得它的具體推理,但只是一個建議。

+0

oh thanx .. il看着它。 –

1

使用onkeydown事件,並檢查event.charCode。即使在連續按下鍵入時也會發生這種情況。

+0

哦。對不起。但這不能幫助我......它給了我同樣的問題。 –

2

我認爲主要的問題是,AJAX需要一些時間。因此,如果你的用戶輸入的速度非常快,你會發送很多請求到你的服務器,你會得到很多你實際上不需要的答案。 一個可能的解決方案是,你在你的事件中超時。例如等到用戶未輸入約500毫秒左右的字母。之後,您將請求發送到服務器。
您的請求將會減少,並且您的請求也不會混淆。

+0

是的..它似乎是有益的..但你可以請引導我..關於如何使這個事件等..我在做它的JavaScript ..所以如何可以達到.. –

+0

@do_do_do - 技術以間隔排隊和釋放請求稱爲* throttling *。我已經鏈接到一個很好的資源,可以使用或不使用jQuery來輔助此技術。 – bPratik