2013-02-04 65 views
0

我目前遇到問題。我試圖重置我的textarea,如果它的值爲Message...(它在加載頁面時具有)。但就目前而言,無論其價值如何,它都會重置。這裏是我的jQuery代碼:jQuery在任何點擊時重置textarea,但據說只有當textarea具有特定值時纔會這樣做。

if ($("#text").value = 'Message...') 
{ 
    $("#text").click(function() { 
     $(this).val(''); 
    }); 
} 

HTML代碼只是一個表單內的textarea。

+0

不要使用text.click部分。這會導致對該表單元素的任何點擊來重置值。 –

回答

1

一些您的問題是

if ($("#text").value = 'Message...') 
// should be replaced with the line below 
if ($(this).val() == 'Message...') 

注意使用的value代替作爲賦值運算符val()代替,我用等號(你也可以在身份操作===) 。

此外,您的文本總是被重置的原因是因爲每次單擊#text元素時,您的事件處理程序都會重置文本,因此要實現預期行爲,需要將邏輯包裝到事件處理程序中。

$("#text").click(function() { 
    if ($(this).val() == 'Message...') 
    $(this).val(''); 
}); 

如果你想實現一個「佔位」的效果,你可以改用以下:

$("#text").focusin(function() { 
    if ($(this).val() == 'Message...') 
    $(this).val(''); 
}).focusout(function() { 
    if ($(this).val() == '') 
    $(this).val('Message...'); 
}); 
+0

你的一半代碼:我刪除了重點(因爲我不需要它)的功能,它的工作。謝謝! – finst33

1

$("#text").value = 'Message...'將永遠是true,因爲您正在使用賦值運算符。用===代替比較。

if ($("#text").val() === 'Message...') 
{ 
    $("#text").click(function() { 
     $(this).val(''); 
    }); 
} 
+0

jQuery對象也沒有'value'屬性。 –

+0

@KevinB好點。改變了這個例子。 – adamb

相關問題