jQuery .attr()在IE中不起作用

时间:2010-07-22 20:12:42

标签: jquery internet-explorer

我正在使用一些简单的jQuery将onfocus / onblur事件添加到生成的表单中。以下代码适用于其他浏览器,IE7 / 8除外:

$(document).ready(function(){
   $("input#edit-submitted-first-name").attr('onfocus', "if(this.value=='First Name') this.value = ''");
   $("input#edit-submitted-first-name").attr('onblur', "if(this.value=='') this.value = 'First Name'");
});

在IE源代码中,它甚至没有将它添加到输入中。有关于此的IE错误吗?

3 个答案:

答案 0 :(得分:6)

我不认为事件应该以这种方式分配。

为什么不使用

$("input#edit-submitted-first-name").focus(function(){ if (this.....
$("input#edit-submitted-first-name").blur(function(){ if (this.....

答案 1 :(得分:1)

在兼容模式的IE8上,这是有效的:

$(document).ready(function(){ 
    $("#edit-submitted-first-name").focus(function(){ 
        if(this.value=='First Name') this.value = '';
    }); 
    $("#edit-submitted-first-name").blur(function(){ 
        if (this.value=='') this.value = 'First Name';
    }); 
});

在此处查看此行动:http://jsfiddle.net/w9pWk/

注意:此功能非常类似于此处的水印插件:http://code.google.com/p/jquery-watermark/但当然缺少一些易于使用的功能,初始字段填充,如果数据不替换的逻辑如果您输入插件,则输入等。

答案 2 :(得分:0)

试试这个

$('input#edit-submitted-first-name').focus(function() {

    if($(this).val()=='First Name') 
              $(this).val('')

    });

    $('input#edit-submitted-first-name').blur(function() {

    if($(this).val()=='') 
              $(this).val('First Name')

    });