JQuery模糊validation问题

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

下面的代码应该可以正常工作,但即使我弹出一些文字,请不断提醒我,请问我做错了什么?

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

你想使用$(this).val() ,如下所示:

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

目前你正在检查if('input#name:empty')是否为true,任何字符串在JavaScript中都是true (弱类型)。 另外:empty选择器检查它没有子元素 ,而不是它的是空的,所以检查该值是否为空字符串,或者.length是空的,就像我上面的:)

此外,除非有可能这个ID在另一个元素类型上,你不想匹配, #name就足够了,并且更快, input前缀是多余的。

试试这个:

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

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