OnBlur和OnFocus事件无法正常工作

时间:2010-06-21 16:40:17

标签: jquery onblur onfocus

您好我正在努力让我的onblur和onfocus功能正常工作,但它们似乎没有做正确的事情 - 我试图说明字段“fullname”是否为空然后放置“Full Name”在现场,如果有人输入了东西,请保持原样。目前它清除了字段,如果它显示“全名”,如果它是空的,它会输入“全名”。但我的问题是,每当有人在其中输入任何内容时,都会在字段中输入“全名”。

这是我正在使用的代码

  

function doFocusNew(){       if($('。fullname')。val()!= null&& $('。address')。val()!=   空值) {       $( '全名 ')。VAL('')   }   };

     

function doBlurNew(){       if($('。fullname')。val()!= null&& $('。address')。val()!=   空值) {       $('。fullname')。val('全名')   }   };

干杯杰米

1 个答案:

答案 0 :(得分:0)

来自.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版本。