2012-10-11 41 views
5

我有什麼

我有一個文本字段,它的加價,我不能直接編輯:無法通過jQuery的onclick禁用文本字段/的onblur值

<input type="text" name="email" value="Email Address" id="subscribe-field" 
onclick="if (this.value == 'Email Address') { this.value = ''; }" 
onblur="if (this.value == '') { this.value = 'Email Address'; }"> 

我需要什麼

無論文本字段是否被點擊,沒有被點擊或被點擊,我都需要將文本字段值設爲空白。

我已經試過

我可以禁用值:

$('#subscribe-field').val(''); 

我試圖禁用的onclick和的onblur值:

$('#subscribe-field').click(function() { return false; }); 
$('#subscribe-field').off('click'); 
$('#subscribe-field').unbind('click'); 

...然而,只要我點擊文本字段以外,該值就會重新出現。

我的問題

如何刪除從上面標記了的onblur價值?

+4

+ 1整齊排列的問題。 – Nick

+0

@OptimusPrime - 致謝感謝,謝謝。 –

回答

6

試試這個方法:

$('#subscribe-field').removeAttr('onclick');

$('#subscribe-field').removeAttr('onblur');

+0

此方法有效。謝謝。 –

+2

一個jsfiddle來證明它:http://jsfiddle.net/8pAre/(我想在upvoting之前檢查它) – Chris

+0

@DominorNovus樂於幫助:) –

1

您應該刪除內嵌JavaScript。 jsfiddle。使用jQuery.one將確保焦點事件只會被調用一次。

<input type="text" name="email" value="Email Address" id="subscribe-field" /> 



$('#subscribe-field').one('focus',function() { 
      this.value = ''; 
     return false; 
}); 

UPDATE:由於mahmoud建議,應刪除的onClick和的onblur屬性,如果你不能編輯HTML。

offunbind將取消綁定jQuery的click事件不會內聯onclick並返回false也不會解決你的問題爲內聯onClick將先被調用。

+1

「我有一個文本字段,我無法直接編輯它的標記」,因此他無法刪除內嵌javascript。 – Chris

+0

@Shusl - 謝謝,但由於某些原因,代碼並未阻止在單擊文本字段外部時重新顯示值。我是否需要將額外的jQuery代碼與您發佈的內容結合使用?另外,您的方法在任何方面都優於馬哈茂德所提出的方法嗎? –

+0

@Shusl - 更新指出,謝謝。 –