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