我想防止保存按钮上的默认操作,并希望在检查Ajax调用结果后保存数据。这是我的脚本
var CreateUrl = '@Url.Action("Create", "PriMkt")';
$('#btnsave').click(function (e) {
// e.preventDefault();
debugger;
var Amount = $("#TrasactionAmt").val();
var CustomerId = $("#CUSTOMER_ID").val();
$.ajax({
url: '@Url.Action("CheckAvlBal", "PriMkt")',
type: "GET",
dataType: "JSON",
data: { Amount: Amount, CustomerId: $("#CUSTOMER_ID").val() },
success: function (data) {
debugger;
if (data == 0) {
e.preventDefault();
bootbox.alert("You have insufficient Balance", function () {
window.location.href = CreateUrl;
});
}
else
{
}
}
});
})
这是我的控制器动作,我也运行程序运行完美,这不是我关心的。
public int CheckAvlBal(int CustomerId, decimal Amount)
{
var Acct_Desc = new System.Data.Objects.ObjectParameter("p_ACCT_DESC", typeof(string));
var Acct_CCy = new System.Data.Objects.ObjectParameter("aCCT_CCY", typeof(string));
var P_Branch = new System.Data.Objects.ObjectParameter("p_BRANCH", typeof(string));
var Acc_Type = new System.Data.Objects.ObjectParameter("p_ACCT_TYPE", typeof(string));
var Deposit_Type = new System.Data.Objects.ObjectParameter("p_DEPOSIT_TYPE", typeof(string));
var Client_No = new System.Data.Objects.ObjectParameter("p_CLIENT_NO", typeof(int));
var Ownership_Type = new System.Data.Objects.ObjectParameter("p_OWNERSHIP_TYPE", typeof(string));
var Profit_Centre = new System.Data.Objects.ObjectParameter("p_PROFIT_CENTRE", typeof(string));
var Acct_OpenDate = new System.Data.Objects.ObjectParameter("p_ACCT_OPEN_DATE", typeof(string));
var Acct_Status = new System.Data.Objects.ObjectParameter("p_ACCT_STATUS", typeof(string));
var Ledger_Bal = new System.Data.Objects.ObjectParameter("p_LEDGER_BAL", typeof(decimal));
var Actual_Balance = new System.Data.Objects.ObjectParameter("p_ACTUAL_BAL", typeof(decimal));
var Daily_Avg_Balance = new System.Data.Objects.ObjectParameter("p_AVG_DAILY_BAL", typeof(decimal));
var Acct_Available_Balance = new System.Data.Objects.ObjectParameter("p_ACCT_AVAIL_BAL", typeof(decimal));
var Last_Bal_Update = new System.Data.Objects.ObjectParameter("p_LAST_BAL_UPDATE", typeof(string));
// string p_ACCT_NO = "187201016446";
CUSTOMER customer = db.CUSTOMERs.Find(CustomerId);
string p_ACCT_NO = customer.PKR_ACCNO;
db.GET_ACCT_DETAILS(p_ACCT_NO, Acct_Desc, Acct_CCy, P_Branch, Acc_Type, Deposit_Type, Client_No, Ownership_Type, Profit_Centre, Acct_OpenDate, Acct_Status, Ledger_Bal, Actual_Balance, Daily_Avg_Balance, Acct_Available_Balance, Last_Bal_Update);
var AvlAmount =Acct_Available_Balance.Value;
if (Amount < Convert.ToDecimal(AvlAmount))
{
return 1;
}
else
{
return 0;
}
}
此处需要的逻辑是如果有效则提交/保存,而不是如果无效则阻止提交。
我假设按钮#btnsave
是表单的提交按钮,所以您可以这样做:
var CreateUrl = '@Url.Action("Create", "PriMkt")';
$('#btnsave').click(function (e) {
e.preventDefault();
debugger;
var Amount = $("#TrasactionAmt").val();
var CustomerId = $("#CUSTOMER_ID").val();
$.ajax({
url: '@Url.Action("CheckAvlBal", "PriMkt")',
type: "GET",
dataType: "JSON",
data: { Amount: Amount, CustomerId: $("#CUSTOMER_ID").val() },
success: function (data) {
debugger;
if (data == 0) {
bootbox.alert("You have insufficient Balance", function () {
window.location.href = CreateUrl;
});
} else {
// Replace with form id
$('#form').submit();
}
}
});
})