jQuery .attr () не работает в IE - PullRequest
2 голосов
/ 23 июля 2010

Я работаю с несколькими простыми 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 ]

6 голосов
/ 23 июля 2010

Не думаю, что события должны быть назначены таким образом.

Почему бы не использовать

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

1 голос
/ 23 июля 2010

На 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/ но, конечно, отсутствуют некоторые функциональные возможности, которые обеспечивают простоту использования, начальную заполненность полей, логику, которую НЕ нужно заменять при вводе данных и т. д., которую вы получаете с помощью плагина.

0 голосов
/ 23 июля 2010

попробуйте

$('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')

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...