gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:51 25 4
gpt4 key购买 nike

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

我调用了一个 web 方法来检查页面是否脏并返回一个 bool 值:

<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" />

方法调用工作正常,我只在修改当前用户时看到确认对话框。我的问题是,当我单击“取消”时,btnAddNewUser_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()) return false;我尝试在 OnConfirm() 中使用两个版本的确认代码。但是,当确认对话框弹出并且我点击取消时,OnClick 事件仍然会触发。

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

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

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

我的 OnConfirm 函数缺少什么?

最佳答案

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

click me

为您更新。

使用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.cs 文件

        [WebMethod]
public static string MyFunction1(string parameter)
{

return parameter;
}

关于javascript - C# asp.net 确认在 Ajax 调用中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36564719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com