2010-04-22 74 views
1

我有一些內嵌標籤的表單。我有一些javascript(jQuery),用於檢測焦點何時發生更改或者用戶輸入的文本是否改變了類,以使內聯標籤消失並且不阻止用戶對其輸入文本的查看。檢測自動完成

我遇到的問題發生在瀏覽器自動完成表單時。以下任何條件都不會觸發,因此我無法清除內嵌標籤。如何檢測通過自動完成輸入文本的事實,以便我可以清除標籤?

我使用(從http://www.zurb.com/playground/inline-form-labels)的JS:

$(document).ready(
    function() 
    { 
     $("label.inlined + .input-text").each(
      function(type) 
      { 
      $(this).focus(function() 
      { 
       $(this).prev("label.inlined").addClass("focus"); 
      }); 
      $(this).keypress(
       function() 
       { 
        $(this).prev("label.inlined").addClass("has-text") 
         .removeClass("focus"); 
       }); 
      $(this).blur(
       function() 
       { 
        if($(this).val() == "") 
        { 
        $(this).prev("label.inlined").removeClass("has-text") 
         .removeClass("focus"); 
        } 
       }); 
      }); 
    }); 

謝謝!

布萊恩

+0

聽起來類似於http://stackoverflow.com/questions/343192/why-does-the-javascript-onchange-event-not-fire-if-autocomplete-is-on。 – kloffy 2010-04-22 15:40:44

+0

您是否嘗試添加「粘貼」處理程序來執行與「按鍵」相同的處理程序? – Pointy 2010-04-22 15:41:27

+0

通過去kloffy的鏈接,它提到了jQuery'change'事件(也由zincorp提及)。這似乎不適用於我。 '粘貼'也沒有工作。 – 2010-04-22 18:35:00

回答

0

您是否嘗試過的change事件?

+0

只改變模糊:「對於其他元素類型該事件被推遲到元素失去焦點。「 http://api.jquery.com/change/ – jsims281 2012-01-17 11:34:13