2012-05-03 78 views
2
 $('input[class*="defaulttext"]').each(function() { 

        this.value = $(this).attr('title'); 
        $(this).addClass('defaultclass'); 

        $(this).focus(function() { 
         if (this.value == $(this).attr('title')) { 
          this.value = ''; 
          $(this).removeClass('defaultclass'); 
         } 
        }); 

        $(this).blur(function() { 
        if (this.value == '') { 
         this.value = $(this).attr('title'); 
         $(this).addClass('defaultclass'); 
        } 
       }); 


       }); 

這基本上增加了文本框的背景文本效果(使用標題)。一旦選中,文字就會消失。jquery從提交文本框中刪除默認文本

現在,我有一個可選字段的問題。如果用戶不編輯這些字段,則默認背景文本將隨表單一起提交。因此,我需要在表單提交後重置未編輯字段的值。任何想法如何做到這一點?

也許在表單提交,檢查標題=值?如果是,則設置爲「'。

+1

你不加入「背景文字」,實際上是設置該字段的值。爲什麼不使用HTML5 [佔位符](https://developer.mozilla.org/en/HTML/Element/input#attr-placeholder)屬性? – j08691

+0

j08691 - 很好的建議,但你也必須記住,大多數用戶不使用支持它的現代瀏覽器。 – naspinski

+0

對佔位符屬性不熟悉。將調查它,謝謝。 – domino

回答

1

根據你的代碼可能標誌着你編輯的字段,你可以這樣做:

$("#yourForm").submit(function() { 
    $('input[class*="defaulttext"]').val(""); 
}; 
+1

這不會清空所有的輸入,包括那些已經填滿的輸入嗎? – aldux

+0

Nah因爲在他的'blur'函數中,他添加並刪除默認類,如果它有一個值。 – mattytommo

+0

這是正確的!我錯過了。 – aldux

0
$("#yourForm").submit(function() { 
    $('input.defaulttext').each(function() { 
     if($(this).val() === $(this).attr('title')) { $(this).val(''); } 
    }); 
};