无法通过jQuery禁用文本字段的onclick / onblur值

时间:2012-10-11 11:04:54

标签: 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值?

2 个答案:

答案 0 :(得分:7)

尝试这种方式:

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

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

答案 1 :(得分: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属性。

offunbind取消绑定jQuery click事件而非内联onclick并且返回false也无法解决您的问题,因为内联onClick将被调用第一