2010-04-22 97 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