C#asp.net确认在Ajax调用中不工作



抱歉,这是我第一次使用javascript进行编码。所有这些我都是根据我在这里发现的其他问题写的。

我调用了一个Web方法,该方法检查页面是否脏,并返回一个布尔值:

<script type="text/javascript">
    function OnConfirm() {
        $.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            url: "UserManagement.aspx/IsDirty",
            dataType: "json",
            data: '{}',
            success: function OnDirtySuccess(result) {
                if (result.d.toString() == "true") {
                    return confirm("You have unsaved changes, select OK to discard these changes without saving.");
                }
                else {
                    return false;
                }
                return true;
            },
            failure: function (response) {
                return true;
            }
        });
    }
</script>

我有一个调用脚本的按钮:

<asp:Button ID="btnAddNewUser" CausesValidation="false" runat="server" Text="Add New User" OnClick="btnAddNewUser_Click" OnClientClick="return OnConfirm();" Width="140px" />

方法调用工作正常,我只在修改当前用户时看到确认对话框。我的问题是,当我单击"取消"时,btAddNewUser_click的事件仍在启动。

基于这里发布的另一个问题的不同方法,对我不起作用:

<script type="text/javascript">
    function OnConfirm() {
        $.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            url: "UserManagement.aspx/IsDirty",
            dataType: "json",
            data: '{}',
            success: function OnDirtySuccess(result) {
                if (result.d.toString() == "true") {
                    if (!confirm("You have unsaved changes, select OK to discard these changes without saving."))
                        return false;
                    //return confirm("You have unsaved changes, select OK to discard these changes without saving.");
                }
                else {
                    return false;
                }
                return true;
            },
            failure: function (response) {
                return true;
            }
        });
    }
</script>  
<asp:Button ID="btnAddNewUser" CausesValidation="false" runat="server" Text="Add New User" OnClick="btnAddNewUser_Click" OnClientClick="if (! OnConfirm()) return false;" Width="140px" />

在这里,我将OnClientClick修改为if(!OnConfirm())返回false;我尝试在OnConfirm()中使用这两个版本的confirm代码。但是,当确认对话框弹出并且我点击取消时,OnClick事件仍然会触发。

我尝试将OnClientClick函数更改为(只是为了简化代码和测试):

<script type="text/javascript">
    function OnConfirm() {
        return confirm('Test ok/cancel?');
    }
</script>

并且确认对话框的确定/取消正常工作。

我的OnConfirm功能缺少什么?

查看此链接。它与您的问题的答案完全相同

点击我

为您更新。

使用POST传递数据

 <asp:Button ID="btnAddNewUser" ClientIDMode="Static" CausesValidation="false" runat="server" Text="Add New User"  Width="140px" />

<script type="text/javascript">
    $(function() {
        $('#btnAddNewUser').click(function(e) {
            e.preventDefault();
            //Make your ajax call
            var params = {};
            params.parameter = "passing string data";
            $.ajax({
                type: "POST",
                url: "YourPageName.aspx/MyFunction1",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify(params),
                success: function(res) {
                    alert(res.d);
                },
                error: function(res) {
                }
            });
        });
    });
</script>

和YourPageName.aspx文件

        [WebMethod]
        public static string MyFunction1(string parameter)
        {
            return parameter;
        }

相关内容

  • 没有找到相关文章

最新更新