0

ステータスの値を返すJavaスクリプト関数があります。私の機能は次のとおりです:

function IsReportAlreadyExists() {
            var result=true;
            $.ajax({
                type: "POST",
                url: "ReportDetail.aspx/CheckReport",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    if (msg.d != "") {
                       result= confirm(msg.d);
                    }
                },
                failure: function (response) {
                    alert(response.d);
                },
                error: function (response) {
                    alert(response.d);
                }
            });
            return result;
        }

asp.netボタンコントロールのクライアントクリックイベントでこの関数を呼び出しています。

 <asp:Button ID="btnSave" Style="margin-right: 10px" runat="server" CausesValidation="false"
                                                    OnClick="btnSave_Click" Text="Save" Width="70px" OnClientClick="return IsReportAlreadyExists();" />

クライアントがボタンをクリックすると、javascript関数は常に真の値を返します。つまり、confirm(msg.d)によって設定された結果の値を取得していません。これを達成する方法はありますか?みんな助けてください。あなたの助けは本当にありがたいです。

ありがとう、Rajbir

4

1 に答える 1

1

これは、コードが非同期であるためです。最初にresult=trueを返し、次にajax呼び出しが終了した後に結果が変更されます。結果を成功コールバックで処理する必要があります。

于 2013-03-07T11:30:21.987 に答える