javascript - 基本表单验证: why won't my class be added or removed?

标签 javascript jquery

我正在尝试默认禁用一个按钮,并且仅在用户填写了标有类别的字段后才将其激活。

这是 jsFiddle:https://jsfiddle.net/co3d5phy/2/

我的 jQuery 看起来像这样:

function checkForAnswers() {
  var count = $('.pdf-checklist-17012[value!=""]').length;
  var total = $('.pdf-checklist-17012').length;

  if (count == total) {
    $('.pdf-17012').removeClass('disabled');
    $('.pdf-17012').removeAttr('disabled');
  } else {
    $('.pdf-17012').addClass('disabled');
    $('.pdf-17012').attr('disabled', 'disabled');
  }
  console.log(count + '/' + total);
}

checkForAnswers();
$('.pdf-checklist-17012').on('keyup', checkForAnswers);

jsFiddle 似乎无法工作,当我查看 Chrome 中的控制台时,无论完成了多少个字段,它都会记录 0/5 。我错过了什么?

最佳答案

您正在寻找不会改变的 html 属性值。 你可以用这样的想法来解决这个问题:

var count = $('.pdf-checklist-17012').filter(function(){
    return $(this).val() !== "";
}).length;

关于javascript - 基本表单验证: why won't my class be added or removed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45548127/

相关文章:

javascript - 照片库 -javascript

javascript - 如何在循环中将选项中的值保存到一个数组单元格

javascript - 事件监听器?

javascript - 使用变量值设置 slider 拇指高度

javascript - 错误的 POST 请求和使用 Ajax 的 GET 没有返回值

javascript - AngularJs 绑定(bind)选择

javascript - DataTable createdRow 没有向行添加属性吗?

javascript - react 组件内的 map 功能

javascript - 如何在 VSCode 调试器中执行异步函数?

javascript - 如何将 window.baseUrl 从 razor 代码返回到我的外部 .js 文件中