javascript - 如何使用 jquery 检查是否有任何一个值不等于并停止在每个函数内调用函数?

标签 javascript jquery

在给定的代码中,如果任何输入值不等于属性值,则返回 false 并且不调用函数“printDiv()”。此 printDiv 函数用于 window.print()。现在如果每个函数都失败在另一个窗口中打开打印页面后也调用 printdiv 然后只显示错误警告消息。如果每个函数中的任何一个值失败只想显示警告消息而不调用 printdiv 函数

如何解决这个问题?

 $("#btnprint").click(function(e) {
        var isValid = true;
        $('#printcontent').hide();
        var orginaladv = $('#orginal_advamt').val();
        var orginalbal = $('#orginal_balamt').val();
        var changeadv = $('#advamt').val();
        var changebal = $('#balamt').val();

        $('.checkattrval').each(function() {
             e.preventDefault();
            if($(this).val() != $(this).attr('data-orgval')) {
                alert("You should update first");
                isValid = false;
                return false;
            }
             else {
                 printDiv(); 
             }
        });
        return isValid;
    });

最佳答案

将对 printDiv() 的调用移到循环外,并让它在那里检查 isValid。否则,您会为每个有效字段调用它,直到遇到无效字段。

$("#btnprint").click(function(e) {
  var isValid = true;
  $('#printcontent').hide();
  var orginaladv = $('#orginal_advamt').val();
  var orginalbal = $('#orginal_balamt').val();
  var changeadv = $('#advamt').val();
  var changebal = $('#balamt').val();

  $('.checkattrval').each(function() {
    e.preventDefault();
    if ($(this).val() != $(this).attr('data-orgval')) {
      alert("You should update first");
      isValid = false;
      return false;
    }
  });
  if (isValid) {
    printDiv();
  }
});

关于javascript - 如何使用 jquery 检查是否有任何一个值不等于并停止在每个函数内调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52974105/

相关文章:

javascript - 如何强制固定定位元素内的元素响应 Android 网络浏览器上的 javascript onclick 事件?

javascript - scrollr.js 动画仅发生在位置固定的元素上

javascript - 在 Rails 中使用 Javascript

javascript - 传单禁用缩放到标记以及如何保持弹出窗口始终处于事件状态

javascript - 使用 select2 javascript 从数组中设置选定值

jquery - 使用 jQuery 和 CSS 隐藏基于重复动态类子项的容器

javascript - 如何创建多个jquery表单字段并插入mysql数据库,而不使用mysql_real_escape_string

javascript - 通过单击 jquery 中的链接打开新选项卡(窗口)

javascript - JS Bootstrap 表将 bool 值显示为 YES 和 NO 而不是 1 和 0

javascript - Knockoutjs - 单击按钮时打开选择下拉菜单