jQuery选择器对象不会动态更新

时间:2011-02-11 20:08:59

标签: jquery

我正在尝试通过使用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选择器的其他一些神秘/简单规则我不注意?

1 个答案:

答案 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
}