2009-12-21 55 views
0

我正在構建我的新主題,我有一個問題。我使用jQuery顯示輸入的標籤後輸入:WordPress的內聯標籤(jQuery)

this.label2value = function(){ 

    var inactive = "inactive"; 
    var active = "active"; 
    var focused = "focused"; 

    $("label").each(function(){ 
     obj = document.getElementById($(this).attr("for")); 
     if(($(obj).attr("type") == "text") || (obj.tagName.toLowerCase() == "textarea")){ 
      $(obj).addClass(inactive); 
      var text = $(this).text(); 
      $(this).css("display","none"); 
      $(obj).val(text); 
      $(obj).focus(function(){ 
       $(this).addClass(focused); 
       $(this).removeClass(inactive); 
       $(this).removeClass(active); 
       if($(this).val() == text) $(this).val(""); 
      }); 
      $(obj).blur(function(){ 
       $(this).removeClass(focused); 
       if($(this).val() == "") { 
        $(this).val(text); 
        $(this).addClass(inactive); 
       } else { 
        $(this).addClass(active); 
       }; 
      }); 
     }; 
    }); 
}; 
$(document).ready(function(){ 
    label2value(); 
}); 

但是,問題是,當我提交通訊,如果不是一個網站的網址WP使用標籤作爲一個URL(http://YourWebsiteURL)。

我該如何解決這個問題?

回答

0

你的代碼用它們的標籤填充輸入,所以它們最終被提交給服務器。乾淨的解決方案是停止使用輸入值,使用CSS來移動輸入下方的標籤(相同的位置,較低的Z-index),並使用jQuery在輸入上添加/刪除透明背景取決於它們是否處於焦點和/或空閒狀態。

這樣,您就可以通過輸入查看標籤,如果它是空的,而不是根據焦點

的快速和骯髒的解決辦法,因爲現有的代碼,是設置表單的提交事件,使任何包含自己標籤文本的字段在提交表單時都會被清除。

+0

就像透明BG的想法。謝謝。 – Axiol 2009-12-21 23:27:13

0

爲什麼重新發明輪子,雖然有很多插件可以做到這一點,labelify。它可以使用該字段的原始標籤作爲字段中顯示的文本。只需檢查插件頁面的例子。