我正在尝试通过使用jQuery选择器检查必填字段来验证表单。
function validate() {
if ($('input[required][value=""]').length != 0) {
console.log("required value missing");
}
return false; // to prevent firing default action
}
有一些像这样的输入元素,其值设置为PHP(未显示):
<input id="id" name="name" type="text" required\>
问题是这个验证函数会在第一次正确读取DOM(即将正确识别所有必需的空输入),但是一旦我填入/删除值,该函数将保持返回与之前相同的设置,而不是认识到新空的田地 或新填充的字段。但是,一旦我刷新页面,选择器就会正确地获取正确的输入。
我看到了.live()函数,但这适用于事件。
$(选择器)缓存(仅在实例化后检查DOM)还是jQuery选择器的其他一些神秘/简单规则我不注意?
答案 0 :(得分:2)
不要使用value
属性;使用.val()
。
function validate() {
var $missing = $('input[required]').filter(function (){
return $(this).val() === '';
});
if ($missing.length != 0) {
console.log("required value missing");
}
return false; // to prevent firing default action
}