Событие OnBlur и OnFocus не работает должным образом - PullRequest
0 голосов
/ 21 июня 2010

Привет! Я пытаюсь заставить мои функции onblur и onfocus работать, но они, кажется, не работают правильно - я пытаюсь сказать, если поле "полное имя" пусто, тогда поместите "Полное имя" в поле, и если кто-то ввел что-то, оставьте все как есть. В данный момент он очищает поле, если он говорит «Полное имя», и если он пуст, он вводит «Полное имя». Но моя проблема в том, что всякий раз, когда кто-нибудь что-то печатает в нем, в поле вводится «Полное имя».

Вот код, который я использую

function doFocusNew () { if ($ ('. fullname'). val ()! = null && $ ('. address'). val ()! = ноль) { $ ( 'FullName '). Вал ('') } };

function doBlurNew () { if ($ ('. fullname'). val ()! = null && $ ('. address'). val ()! = ноль) { $ ('. fullname'). val ('полное имя') } };

Ура Джейми

1 Ответ

0 голосов
/ 21 июня 2010

Значения от .val() никогда не будут null, они будут пустыми строками, поэтому вам нужно немного подстроиться. Я думаю вот что вы ищете:

function doFocusNew() { 
  if ($('.fullname').val() == 'Full Name') {
    $('.fullname').val(''); //focused, "Full Name" was there, clear it
  } 
}
function doBlurNew() { 
  if ($('.fullname').val() == '') { 
    $('.fullname').val('Full Name'); //blurred, nothing there, put "Full Name" in
  } 
}

Если это текстовые поля, вот полная / компактная версия:

$(function() {
  $('.fullname').focus(function() {
    if(this.value === 'Full Name') this.value = '';
  }).blur(function() {
    if(this.value === '') this.value = 'Full Name';
  });
});

Обновление: , поскольку вы добавляете их динамически:

$(function() {
  $('.fullname').live('focus', function() {
    if(this.value === 'Full Name') this.value = '';
  }).live('blur', function() {
    if(this.value === '') this.value = 'Full Name';
  });
});

Убедитесь, что исправлены все ошибки, например в последней версии jQuery 1.4.2 , чтобы это работало, я вижу, что вы сейчас находитесь на версии 1.4.0.

...