我有一个简单的表单,如果文本字段为空,我想使用模糊进行验证。
下面的代码应该可以工作,但即使我弹出一些文本也会一直提醒我,请问我做错了什么?
var name = $("input#name").val();
$("input#name").blur(function()
{
if (('input#name:empty'))
{
// Testing
alert('Empty');
}
});
我有一个简单的表单,如果文本字段为空,我想使用模糊进行验证。
下面的代码应该可以工作,但即使我弹出一些文本也会一直提醒我,请问我做错了什么?
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 中(弱类型)。:empty
选择器还会检查它是否没有子元素,而不是它的值是否为空,因此请检查该值是否为空字符串,或者.length
像我上面所说的那样为空:)
此外,除非此 ID 可能位于您不想匹配的另一个元素类型上,#name
否则就足够了并且速度更快,input
前缀是多余的。
试试这个:
$("input#name").blur(function()
{
var name = $(this).val();
if (name.length == 0)
{
// Testing
alert('Empty');
}
});
编辑:尼克指出,当模糊发生时需要检查输入文本。如果我再做一些改变,就会像他的回答一样,所以我就到此为止。