0

これを見た人がいたら知りたいです。剣道グリッドがあり、保存イベントで検証を行いたいと考えています。基本的に、古い値との新しい値の差がバランス以下であることを確認します。

したがって、残高よりも大きい場合は、アラートをトリガーし、Default を防止します。ただし、アラートを表示すると、FireFox でページがリロードされます。

これが私のグリッドです:

$("#gridOpenInvoices").kendoGrid({
        autoBind: false,
        dataSource: openInvoicesData,
        scrollable: true,
        sortable: false,
        navigatable: true,
        toolbar: [{name:"save",
                   text:strings.ApplyUpdates},
                  {name: "SplitPayment",
                   text: strings.SplitPayment},
                  {name: "PaidOut",
                   text: strings.PaidOut},
                  {name: "CreateCredit",
                   text: strings.CreditBalance},
                  {name: "UndoAllocation",
                   text: strings.UndoAllocation}],
        columns: [
            {
                field: "CustomerName",
                title: strings.AccountName,
                hidden: true
            },
            {
              field: "OpenTransactionId",
              title: strings.OpenTransaction,
              width:90
            },
            {
              field: "InvoiceNumber"  ,
              title: strings.InvoiceNumber,
              width:65
            },
            {
                field: "GrossSales",
                title: strings.OriginalAmount,
                width: 75,
                format: "{0:c}",
                decimals: 2,
                min: 1,
                value: 0

            },
            {
                field: "Balance",
                title: strings.TransBalance,
                width: 75,
                format: "{0:c}",
                decimals: 2,
                min: 1,
                value: 0

            },
            {
                field: "Date",
                title: strings.Date,
                width:75,
                format: "{0:MM/dd/yy}"

            },
            {
                field: "Age",
                title: strings.Age,
                width:55

            },
            {
                field: "CheckNumber",
                title: strings.CheckNumber,
                width:85
            },
            {
                title: strings.ApplyPayment,
                width:75,
                template: "<input class='k-chk-applied chkbox' type='checkbox' data-bind='source: IsApplied' name='IsApplied' #= IsApplied ? 'checked' : ''#/>",
                attributes:{"class":"tdIsApplied"}
            },
            {
                field:"AppliedAmount",
                title: strings.AppliedAmount,
                format: "{0:c}",
                width: 95,
                attributes: {"class" : "tdAppliedAmount"}
            }],
save: function(e) {
    var model = e.model;
    if (e.values.AppliedAmount != null) {
        var remainingBalance = context.getRemainingBalance();
        var difference = e.values.AppliedAmount - model.AppliedAmount;
        if (remainingBalance >= difference) {
            var balanceCopy = model.BalanceCopy;
            model.Balance = model.GrossSales - e.values.AppliedAmount;
            model.BalanceCopy = model.GrossSales - e.values.AppliedAmount;

            if (model.Balance == 0 && model.IsUncollected) {
                model.IsUncollected = false;
                context.UpdateBalance(balanceCopy, 0, true);
            }
            context.UpdateBalance(model.AppliedAmount, e.values.AppliedAmount, true);
            this.refresh();
            context.showButtons();
        } 
        else {
            alert("The applied amount exceeds the remaining balance");
            e.preventDefault();
        }
    }
}, editable:"incell"});

これは、適用された金額を編集し、Enter キーを押してコミットした場合にのみ発生しているようです。なぜこれが起こっているのか分かりますか?

4

1 に答える 1