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

时间:2018-10-24 16:40:20

标签: 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;
    });

1 个答案:

答案 0 :(得分:1)

将调用移至循环外的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();
  }
});