我完全相信如何完整地描述我的问题。但是,我会试一试。
我使用Jquery为HTML元素分配了几个触发器。触发器1,专门为此特定表单验证项目。在确定触发器1的验证后,第二个触发器是触发器。
发生了什么,你会看到下面的代码,if ($(".Reason").val() == 4) {
是否会显示一个对话窗口,该窗口将提供两个选项,是/否。是的将调用触发器2(提交),否则关闭以进行更正...
如果不满足条件,则触发器2(提交)正确处理并发布表单。但是,如果符合条件,就像return false
一样。
有些线路是不敬的,但我把它们留在那里......如果要删除共识,我会。
很抱歉代码很多。
希望有人可以提供帮助!
$(".validateForm").click(function () {
if ($(".Reason").val() == 4) {
//bankingModal
ExpectedAmount = $(".CloseAmount").val();
cashTotal = parseInt($(".cashtotal").val());
chequeTotal = parseInt($(".chequeTotal").val());
formTotal = cashTotal + chequeTotal;
formTotal = parseFloat(formTotal).toFixed(2);
if (formTotal !== ExpectedAmount ) {
$(".bankModal").dialog({
resizable: false,
height: 210,
width: 400,
modal: true,
position: 'center',
buttons: {
'Yes - Submit': function () {
$('.submit').click()
$(this).dialog("close");
},
'No - Cancel': function () {
$(this).dialog("close");
}
}
})
}
} else {
//submitBanking();
$('.submit').click()
}
return false;
})
// The following is the second trigger.
$('.submit').click(function () {
// Unset error
formErr = false;
window.onbeforeunload = null;
// Validation for Change Request
if ($(".outgoing").length > 0) {
if (validateChangeRequest()) {
formErr = true;
}
}
// If text box is empty change values to 0.00
$('.cashSum', '.cashSumOut').each(function () {
if (!$(this).val()) {
$(this).val('0.00');
}
});
// Check if numeric values are ok prior to submit.
$(".cashAmount").each(function () {
if (isNaN($(this).val())) {
modal("", "Only numbers are permitted");
formErr = true;
}
if (checkNegatives($(this))) {
modal($(this), "Negative values are not permitted");
formErr = true;
}
});
if (formErr) {
return false;
}
if ($("#cashCheque").length != 0) {
return false;
}
});
答案 0 :(得分:0)
为什么每次满足条件时都会创建对话框。
只需在DOM ready handler
中创建一次,只需在满足条件时打开对话框。
$(".validateForm").click(function() {
if ($(".Reason").val() == 4) {
//bankingModal
ExpectedAmount = $(".CloseAmount").val();
cashTotal = parseInt($(".cashtotal").val());
chequeTotal = parseInt($(".chequeTotal").val());
formTotal = cashTotal + chequeTotal;
formTotal = parseFloat(formTotal).toFixed(2);
if (formTotal !== ExpectedAmount) {
$(".bankModal").dialog('open');
}
} else {
//submitBanking();
$('.submit').click()
}
return false;
});
$(".bankModal").dialog({
resizable: false,
height: 210,
width: 400,
modal: true,
position: 'center',
autoOpen : false,
buttons: {
'Yes - Submit': function() {
$('.submit').click()
$(this).dialog("close");
},
'No - Cancel': function() {
$(this).dialog("close");
}
}
});
<强>更新强>
假设没有错误时提交表单
if (formErr) {
return false;
}
if ($("#cashCheque").length != 0) {
return false;
}
$('form').submit(); // submit when no errors