我有一个简单的表单,如果文本字段为空,我想使用blur验证。
下面的代码应该可以使用,但即使我弹出一些文字,也要保持警告,请问,我做错了什么?
var name = $("input#name").val();
$("input#name").blur(function()
{
if (('input#name:empty'))
{
// Testing
alert('Empty');
}
});
答案 0 :(得分:1)
您想使用$(this).val()
,如下所示:
$("input#name").blur(function() {
if ($(this).val().length === 0) {
// Testing
alert('Empty');
}
});
目前你正在检查if('input#name:empty')
这是真的,任何字符串都是true
在JavaScript中(弱键入)。此外:empty
selector检查它没有子元素,而不是它的值是空的,因此请检查该值是否为空字符串,或{{} 1}}就像我上面那样是空的:)
此外,除非您可能不希望匹配其他元素类型的此ID,否则.length
就足够了,并且速度更快,#name
前缀是多余的。
答案 1 :(得分:0)
试试这个:
$("input#name").blur(function()
{
var name = $(this).val();
if (name.length == 0)
{
// Testing
alert('Empty');
}
});
编辑:尼克指出,模糊发生时需要检查输入文本。如果我做出更多改变,那就像他的回答一样,所以我就此止步。