在给定的代码中,如果任何输入值不等于属性值,则返回 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/