7

我有的

我有一个文本字段,我无法直接编辑其标记:

<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

2 回答 2

11

试试这种方式:

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

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

于 2012-10-11T11:10:37.087 回答
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; 
});

更新:根据mahmoud的建议,如果您无法编辑 html,则应删除 onClick 和 onBlur 属性。

off并且unbind将取消绑定 jQueryclick事件而不是内联 onclick并返回 false 也不会解决您的问题,因为内联onClick将首先被调用。

于 2012-10-11T11:09:16.757 回答