0

我有一个简单的表单,如果文本字段为空,我想使用模糊进行验证。

下面的代码应该可以工作,但即使我弹出一些文本也会一直提醒我,请问我做错了什么?

var name = $("input#name").val();
$("input#name").blur(function() 
{
      if (('input#name:empty'))
      {
            // Testing
            alert('Empty');
      }
});
4

2 回答 2

1

你想使用$(this).val(),像这样:

$("input#name").blur(function() {
   if ($(this).val().length === 0) {
     // Testing
     alert('Empty');
   }
});

目前您正在检查if('input#name:empty')哪个是真的,任何字符串都将true在 JavaScript 中(弱类型)。:empty选择器还会检查它是否没有子元素,而不是它的是否为空,因此请检查该值是否为空字符串,或者.length像我上面所说的那样为空:)

此外,除非此 ID 可能位于您不想匹配的另一个元素类型上,#name否则就足够了并且速度更快,input前缀是多余的。

于 2010-06-04T03:05:51.083 回答
0

试试这个:

$("input#name").blur(function() 
{
  var name = $(this).val();
  if (name.length == 0)
  {
        // Testing
        alert('Empty');
  }
});

编辑:尼克指出,当模糊发生时需要检查输入文本。如果我再做一些改变,就会像他的回答一样,所以我就到此为止。

于 2010-06-04T03:05:45.703 回答