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'); } });
编辑:尼克指出,模糊发生时需要检查输入文本。 如果我做出更多改变,那就像他的回答一样,所以我就此止步。