2012-11-22 102 views
2

我試圖從輸入框中獲得對輸入到其中的字母的即時反饋。輸入的最大長度爲1個字符,並且我希望jQuery在用戶提起已輸入角色的密鑰的時候提醒此值。jQuery .keyup()無限觸發

以下檢測到的值立即生效,但始終保持循環。這不是嚴格的問題,但它看起來像是一種過度的壓力。

$("#captcha").keyup(function(e) { 
    ($(this).val() == 'w') ? $(this).css("border-bottom","2px dotted #27bbb1") : $(this).css("border-bottom","2px dotted #ED0664") ; 
    //e.preventDefault(); 
}); 

change()將不作爲事件的工作當用戶將焦點更改這僅僅是觸發,我需要這個按鍵之後。

感謝

+1

刪除警報或執行console.log – Esailija

+1

其更換工作正常檢查它在這裏http://jsfiddle.net/rajaadil/U7LML/ – Adil

+0

哪個瀏覽器是你使用?似乎在我的工作很好。 –

回答

6

您可能正在使用回車鍵解除警報,這也觸發keyup事件。試試這個:

$("#captcha").keyup(function() { 
    $(this).blur(); 
    var val = $(this).val(); 
    alert(val); 
}); 
+0

Duh。是強迫它失去焦點。分類,非常感謝。 – artparks

+0

然後繼續並接受這個答案 – devnull69

+0

當我被允許時,我會。 – artparks

0

你的腳本適合我。嘗試使用您的腳本創建的這個js小提琴。 有了如下修改

<form> 
    <input id="target" type="text" value="Hello there" /> 
</form> 
<div id="other"> 
    Trigger the handler 
</div>​ 

$("#target").keyup(function() { 
    val = $(this).val(); 
    alert(val); 
}); 
​ 

Yourscript working