2011-03-06 70 views
1

我有這樣的代碼:如何不提交水印文字?

$(document).ready(function() { 
    $('.watermark').focus(function() { 
     if (this.className == 'watermark') 
     { 
      this.className = ''; 
      this.reset = this.value; 
      this.value = ''; 
     } 
    }); 

    $('.watermark').blur(function() { 
     if (this.value == '') 
     { 
      this.className = 'watermark'; 
      this.value = this.reset; 
     } 
    }); 
}); 

,它工作正常,但是當我提交表單的水印提交數據。在不修改我的php處理文件的情況下,是否可以將帶水印的文本提交爲空白?我的意思是:如果文本框的類是「水印」,則爲該文本框提交一個空白值。我不想修改我的php處理文件,但我不介意使用JQuery。最好的解決方案是捕獲提交按鈕的單擊事件,並快速設置文本框的水印值爲空?

+0

最好的解決方案不是通過首先設置*值*來完成您的水印。使用「佔位符」或在(透明)輸入下面放置標籤。 – Quentin

+0

佔位符是否完全支持?我無法讓它工作。如何將標籤放在輸入之下?編輯:顯然佔位符文本只適用於Firefox 3.7+和我正在使用3.6我要升級,但我可能不應該使用它,如果這是新的。 –

+0

要在輸入下放置標籤,請使用絕對定位。未拋光的例子:http://dorward.me.uk/tmp/label-work/example.html對我來說 – Quentin

回答

0

如果我理解正確的話,你可以這樣:

$('form').submit(function(){ 
    $(this).find('.watermark').each(function(){ 
     if(!this.reset) 
      this.value = ''; 
    }); 
}); 
0

使用placeholder屬性上的文字輸入元素:

<input type="text" placeholder="Text goes here" id="foo" /> 

因爲這並不在一些較舊的瀏覽器,添加HTML5 placeholder屬性後備腳本到您的頁面(如thisthis)。