2011-08-20 150 views
0

焦點事件,我在我的html頁面下面的腳本:問題與鍍鉻

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     var k_InitialTextBoxValue = "Please enter a cd name"; 

     function requestSuggestion(partialCdName) { 
      $.ajax({ 
       type: "GET", 
       url: "Web1", 
       data: "suggest=" + partialCdName, 
       success: function (msg) { 
        alert(msg); 
       } 
      }); 
     } 

     $("#textCdName").val(k_InitialTextBoxValue); 

     $("#textCdName").focus(function() { 
      alert($(this).val()); 
      /*if ($(this).val() == k_InitialTextBoxValue) { 
       $(this).val() = ""; 
      }*/ 
     }); 


     $("#textCdName").keyup(function() { 
      requestSuggestion($("#textCdName").val()); 
     }); 
    }); 
</script> 

每次我關注#textCdName文本框元素一次,我得到的警告窗口無限數量,而不是一個。這發生在Chrome(v13)中,在IE中它工作正常。

發生過這種情況嗎?我該如何解決這個問題?

+1

如果用'console.log'替換'alert',你會得到一條消息嗎? – Mat

回答

1

這是有道理的,因爲當你拋出alert時,文本框失去焦點(焦點現在在警報對話框中)。

當您違反警告框時,文本框會再次獲得焦點,從而導致新的焦點事件觸發,從而產生新的警報。

而不是使用警報調試代碼的,可以考慮使用console.log它增加了消息到控制檯(您需要一個控制檯觀衆看到這些消息,我不知道是否有一個內置的Chrome瀏覽器) 。

console.log($(this).val());